76 lines
2.7 KiB
C#
76 lines
2.7 KiB
C#
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<string> Rename(List<string> 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;
|
|
}
|
|
}
|
|
}
|