Sprache: C#
Dieses Snippet dient lediglich dazu, alle Dateien in einem Ordner in ein bestimmtes Schema umzubennen.
Kleiner Tipp für C# Anfänger:
[code]if (this.folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
this.path = folderBrowserDialog.SelectedPath;
}
[/code]
Mit diesem Code könnt ihr in einer Windowsanwendung den Pfad per FolderBrowserDialog auslesen.
private void umbennen(string path)
{
// Alle Datainamen aus dem Ordner auslesen und in ein Stringarray speichern
string[] files = Directory.GetFiles(path);
for (int i = 0; i < files.Length; i++)
{
string tmp = Path.GetFileName(files[i]);
// Auffüllen der der Stringlänge ( hier auf 9 zeichen mit nullen )
tmp = tmp.PadLeft(9, '0');
// Datei umbennen
File.Move(files[i], this.path + "\" + tmp);
}
}
private void umbennen(string path)
{
// Alle Datainamen aus dem Ordner auslesen und in ein Stringarray speichern
string[] files = Directory.GetFiles(path);
for (int i = 0; i < files.Length; i++)
{
string tmp = Path.GetFileName(files[i]);
// Auffüllen der der Stringlänge ( hier auf 9 zeichen mit nullen )
tmp = tmp.PadLeft(9, '0');
// Datei umbennen
File.Move(files[i], this.path + "\" + tmp);
}
}
Alte URL:
/snippet/alle-dateien-in-einem-ordner-umbennen/1235
Ich würde da eher ein foreach nutzen, das ist kürzer und einfacher zu lesen.
[code]private void umbennen(string path)
{
foreach (String orgFile in Directory.GetFiles(path))
{
string tmpName = Path.GetFileName(orgFile);
// Auffüllen der der Stringlänge ( hier auf 9 zeichen mit nullen )
tmpName = tmpName.PadLeft(9, ‚0‘);
// Datei umbennen
File.Move(orgFile, path + „\“ + tmpName);
}
}[/code]
Ich finde, eine Iteration ist eine gute Wahl. Ziehe ich persönlich einer Enumeration vor. Was mir fehlt ist ein wenig Exception-Handling. Thema: IO-Zugriffsberechtigung etc
@Martin, ich verstehe den ersten Teil deiner Aussage nicht. Beide Snipplets arbeiten mit Iteration.
foreach arbeitet nur mit Elementen, welche IEnumerable implementieren.
Schau hier: https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/keywords/foreach-in
Iterationen sind oftmals performanter, haben ein definiertes Ende und einen schönen Index. Ist aber Geschmacksache.