using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Test_ChangeOrder { internal class RenameFiles { public List Rename(List files) { //Dateien nach dem verschieben umbenennen, damit die Nummer im Dateinamen mitder Reihung übereinstimmt int number = 0; string fileName = ""; //string tempFileName = ""; string file = ""; string path = ""; System.IO.File.Move(files[files.Count - 1], Path.GetDirectoryName(files[files.Count - 1]) + "\\" + Path.GetFileNameWithoutExtension(files[files.Count - 1]) + "_" + Path.GetExtension(files[files.Count - 1])); for (int i = 0; i < files.Count; i++) { file = Path.GetFileName(files[i]); path = Path.GetDirectoryName(files[i]); number = Convert.ToInt32(file.Remove(file.IndexOf(" "))); fileName = file.Remove(0, file.IndexOf(" ")); if (number != i + 1) { //Umbenennen if (i + 1 < 10) { fileName = path + "\\0" + (i + 1).ToString() + fileName; } else { fileName = path + "\\" + (i + 1).ToString() + fileName; } try { if (i == files.Count - 1) { System.IO.File.Move(Path.GetDirectoryName(files[i]) + "\\" + Path.GetFileNameWithoutExtension(files[i]) + "_" + Path.GetExtension(files[i]), fileName); //Wenn der letzte Eintrag } else { System.IO.File.Move(files[i], fileName); //Alle, ausser dem letzten Eintrag } } catch (Exception) { MessageBox.Show("Datei konnte nicht umbenannt werden.", "Fehler", MessageBoxButtons.OK); } files[i] = fileName; } } for (int j = 0; j < files.Count - 1; j++) { if (Path.GetFileNameWithoutExtension(files[j]).EndsWith("_")) { files[j] = Path.GetDirectoryName(files[j]) + "\\" + Path.GetFileNameWithoutExtension(files[j]).Remove(Path.GetFileNameWithoutExtension(files[j]).Length - 1) + Path.GetExtension(files[j]); } } return files; } } }