Hallo,
oft kommt es vor, dass beim Kopieren einer Datei festgestellt wird, dass der neue Dateiname schon existiert.
Will man die Kopie trotzdem anlegen, wird oft eine aufsteigende Zahl an den Dateinamen gehängt.
Hab hierfür mal eine Extension geschrieben, irgendwie Liebe ich Extensions.
Hier mein Code
Aufruf
Viel Spaß
mikeb69
Beim Einfügen ist zwischen jede Zeile eine Leerzeile hinzugekommen. Ich habe das mal korrigiert. ~Thunderbolt
oft kommt es vor, dass beim Kopieren einer Datei festgestellt wird, dass der neue Dateiname schon existiert.
Will man die Kopie trotzdem anlegen, wird oft eine aufsteigende Zahl an den Dateinamen gehängt.
Hab hierfür mal eine Extension geschrieben, irgendwie Liebe ich Extensions.
Hier mein Code
C#-Quellcode
- /// <summary>
- /// AutoIncrement eines Strings z.b. meinString001, meinString002 usw.
- /// </summary>
- public static class AutoIncrementStringExtension
- {
- /// <summary>
- /// AutoIncrement eines Strings.
- /// Beim Kopieren einer Datei kann es vorkommen, dass diese schon existiert.
- /// Die Funktion hängt an das Ende des Strings oder Dateinamens eine Zahl an, welche hochgezählt wird.
- /// meinString001, meinString002 usw.
- /// </summary>
- /// <param name="value">String auf welchen AutoIncrement angewendet werden soll </param>
- /// <param name="isFile">Zeigt an ob es sich beim übergebenen String um einen Dateinamen handelt (True) oder nicht (False)</param>
- /// <returns>der fertige String</returns>
- public static string AutoIncrement(this string value, bool isFile = false)
- {
- string ext = isFile ? System.IO.Path.GetExtension(value) : string.Empty;
- string temp = isFile ? System.IO.Path.GetFileNameWithoutExtension(value) : value;
- int result = -1;
- int.TryParse(temp.Substring(temp.Length - 3, 3), out result);
- if (result == 0)
- {
- return string.Format(temp + "001{0}", isFile ? ext : string.Empty);
- }
- else
- {
- return string.Format("{0}{1:d3}{2}", temp.Substring(0, temp.Length - 3), result + 1, isFile ? ext : string.Empty);
- }
- }
- }
Aufruf
Viel Spaß
mikeb69
Beim Einfügen ist zwischen jede Zeile eine Leerzeile hinzugekommen. Ich habe das mal korrigiert. ~Thunderbolt
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()