Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1549 | Anzahl registrierter User: 1833 | Besucher online: 833
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Automatisches Umbenennen eines Pfades


Autor: v.wochnik
Sprache: C#
Bewertung: 9
(1 Bewertung)
Anzahl der Aufrufe: 9886
  
Kick it on dotnet-kicks.de  

Beschreibung:

Mit diesem Snippet ist es möglich, einen Pfad, sei es eine Datei oder ein Verzeichnis, umzugestalten, so dass dieser nicht mehr existiert.
Wenn ein Pfad nicht existiert, wird er unverändert zurückgegeben, andernfalls wird eine Nummer angehängt.


Abgelegt unter: Datei, Verzeichnis, Ordner, Pfad, umbenennen, .



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.IO;

namespace ViperBytes.IO
{
    public class AutoRenamer
    {
        /// <summary>
        /// Returns a new, not existing path.
        /// On the end of the file / directory name will be attached a number
        /// </summary>
        /// <param name="path">The existing path</param>
        /// <returns>An alternative path wich not exists</returns>
        public static string AutoRename(string path)
        {
            if ((!File.Exists(path)) && (!Directory.Exists(path)))
                // the path doesn't exist, so return without attached counter
                return path;
            else if (path == Path.GetPathRoot(path))
                // the path is only a drive letter, so we can't attach something
                return path;

            // the returned alternative path
            string alternative = path;

            // the attach counter
            int count = 0;

            // specifyes, wheather an ending slash of directory was cutten
            bool cutSlash = false;

            // cut ending slash
            if (alternative[alternative.Length - 1] == Path.DirectorySeparatorChar)
            {
                alternative = alternative.Substring(0, alternative.Length - 1);

                // remember, because we have to replace it later
                cutSlash = true;
            }

            while ((File.Exists(alternative)) || (Directory.Exists(alternative)))
            {
                count++;

                // the attachment from count
                string attach = " (" + count.ToString() + ")";

                // cut extension if file exists
                if (File.Exists(alternative))
                    alternative = path.Substring(0, path.Length - Path.GetExtension(path).Length) + attach + Path.GetExtension(path);
                else
                    alternative = path + attach;
            }

            // if a slash was cutten, add it at the end
            if (cutSlash)
                alternative += Path.DirectorySeparatorChar;

            return alternative;
        }
    }
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

bigdeak schrieb am:  26.05.2010 16:20:18

Sauber kommentiert, sehr verständlich geschrieben und sehr gut zu gebrauchen, super Snippet, 10 Punkte! :)

Von meiner Seite nur ein winziger Verbesserungsvorschlag:

//if (File.Exists(alternative))
alternative = path.Substring(0, path.Length - Path.GetExtension(path).Length) + attach + Path.GetExtension(path);
// else
// alternative = path + attach;

Du kannst dir eigentlich die Dateiabfrage sparen und direkt die Extension mit rein nehmen, weil diese sowieso string.Empty ist, wenn es sich um einen Ordner handelt.


Diese Snippets könnten für Sie interessant sein:
[VB.NET] Datei im Explorer anzeigen und markieren
[C#] Datei anlegen
[C#] Aktuelles Verzeichnis auslesen
[VB.NET] CRC32 Hash einer Datei berechnen
[VB.NET] Den MD5 Hash einer Datei ermitteln
[VB.NET] Datei mittels Windows Dialog löschen
[VB.NET] Datei mittels Windows Dialog verschieben
[VB.NET] Datei mittels Windows Dialog kopieren
[VB.NET] Den SHA1 Hash einer Datei ermitteln
[VB.NET] Prüfen ob Datei gerade benutzt wird
[C#] Dateien in die Zwischenablage kopieren
[ASP.net] Textdatei zum Download anbieten
[C#] MD5-Hash von Dateien ermitteln
[C#] Arraylist in Textdatei schreiben
[C#] Textdatei in Arraylist speichern
[C#] SHA-1 Hash einer Datei erzeugen
[VB.NET] Datei Paketweise Kopieren
[ASP.net] Datei nach Bildupload prüfen
[C#] Dateien suchen mit LINQ
[C#] Datei/Ordner durch Erweiterungsmethoden abfragen
[C#] Datei-Eigenschaften zeigen (Eigenschaften-Fenster)
[C#] CSV Dateien schreiben
[C#] Create Nice File Size in C#
[VB.NET] Programmpfad mittels Erweiterung ermitteln in VB
[VB.NET] Dateien nach Datum sortieren
[C#] CSV und XML-Datei Datenbank-Import (incl. valid-check)
[C#] Datei umbenennen
[C#] Datei im Windows-Explorer anzeigen und markieren
[VB.NET] File Owner / File Besitzer
[VB.NET] wie in der CMD Pfad zu Datei ermitteln anhand des EXE-namens
[C#] Anzahl der Dateien in einem Ordner ermitteln
[VB.NET] Dateigröße als formatierter String
[VB.NET] Alle Dateien eines Ordners auflisten
[VB.NET] Den kurzen Pfad einer Datei ermitteln (8.3 Format)
[VB.NET] Klasse für Dateisuche
[C#] Erzeugen eines zufälligen Strings
[VB.NET] Dummy Datei erstellen
[C#] Datei in Papierkorb verschieben
[C#] Zeilen einer Datei zählen
[C#] Schreibschutz einer Datei setzen / entfernen
[ASP.net] Eine Datei zum Download anbieten
[VB.NET] Prüfen ob Dateiattribut vorhanden ist
[VB.NET] Bestimmtes Dateiattribut entfernen
[VB.NET] Datei ein bestimmtes Attribut geben
[VB.NET] Prüfen ob Datei eine EXE Datei ist
[C#] Prüfen, ob eine Datei ausfürbar ist (.exe, .bat, etc.)
[C#] Alle Dateien eines Ordners auflisten - C# Version -
[C#] eindeutigen Dateinamen ermitteln
[VB.NET] Datei-Inhalt anzeigen
[C#] Dateien und Ordner rekursiv löschen
[C#] Stream in Datei umleiten
[C#] Ordnergröße ermitteln
[C#] Kapazität mit Einheit darstellen
[C#] LogWriter klasse
[C#] MIMETypeManager
[C#] externes Programm aufrufen (andere Version) mit Parameter
[C#] Herausfinden welches Programm ein bestimmtes Dokument öffnet
[VB.NET] Gibt das Bytearray einer Datei zurück
[C#] Datei ein bestimmtes Attribut geben/setzen
[VB.NET] Klasse für SimpleFileVerification (SFV)
[C#] Laden und speichern von komprimierten Binärdaten
[C#] Datei einlesen und als ArrayList jede Zeile zurückliefern
[C#] Parallele Dateisuche über mehrere Laufwerke
[C#] Byte Größenangaben als String formatieren (KB, MB, GB, ...)
[C#] Textdatei einlesen auf verschiedene Arten
[C#] Datei Teilweise einlesen (gestückelt)
[C#] Bestimmte Zeile einer Datei löschen
[C#] File Container
[C#] PDF Dateien erstellen
[C#] Ist Datei beschreibbar
[C#] Sichern einer MS-SQLServer Datenbank aus C#
[C#] Datei mi GZip packen
[C#] ini Datei anlegen - mit Dictionary
[C#] Dummy Files erzeugen. ( Mit Inhalt )
[C#] Byte-Array in Struktur kopieren
[C#] Text in Textdateien suchen
[VB.NET] Prüfen, ob eine Datei überschrieben werden kann
[C#] Verzeichnis überwachen mit dem FileSystemWatcher
[C#] Das Verzeichnis der Anwendung ermitteln
[C#] Verzeichnis im Windows Explorer öffnen
[C#] Programmverzeichnis finden (z.B. c:\Programme)
[C#] Verzeichnisauswahl Dialog (FolderBrowserDialog)
[VB.NET] Assembly Verzeichnis
[C#] Assembly Verzeichnis
[VB.NET] Assembly Verzeichnis 2
[C#] Windows Temp Verzeichnis ermitteln
[C#] Ordner mit Inhalt kopieren (rekursiv)
[C#] Prüfen ob in einem Verzeichnis Schreibrechte verfügbar sind!
[VB.NET] Ordnergröße ermitteln
[VB.NET] Ort des Ordners "Eigene Dateien" ermitteln und anzeigen
[VB.NET] Ermitteln ob ein Ordner leer ist
[VB.NET] Ordergröße rekursiv bestimmen
[C#] Ordner und Dateien rekursiv durchlaufen
[C#] Alle Dateien in einem Ordner umbennen
[C#] Dateilisten kopieren
[C#] FTP - Ordner Rekursiv erstellen
[VB.NET] Explorerpfad auf gültiges Format prüfen
[C#] Generisches, komprimiertes, serialisieren von Objekten
[VB.NET] Pfad kürzen
[C#] Pfad kürzen
[VB.NET] Original UNC Pfad eines Netzlaufwerkes ermitteln
[C#] GetProjectPath
[VB.NET] Pfad einer Datei-Verknüpfung ermitteln
[ASP.net] Pfad nach url mappen
[C#] UNC-Pfad ermitteln
[C#] 22 System Pfade abfragen
[C#] Integers
[C#] Search Plugin-DLLs with one line
[C#] sehr einfacher Timer
[C#] BindingList mit Sortierfunktion
[C#] Datei öffnen
[C#] ListView Spalten sortieren
[C#] byte-String in byte wandeln
[C#] Excel Spalten Bezeichnung nach Integer
[C#] Prozentual Textvergleichen
[C#] Console in eigene Form einbinden
[C#] Programm am Desktop andocken
[C#] lokale User und Gruppen administrieren
[C#] SimpleDb
[C#] Primärschlüsselwerte ermitteln
[C#] Connection-String Dialog öffnen
[C#] URL auslesen
[C#] Silverlight Anwendung erstellen
[C#] Text codieren
[VB.NET] ''Enter'' in TextBox
[C#] Programm RUN Check
[C#] Zufälliger Eintrag aus einer Liste (Extension Method)
[C#] XAML Grundlagen in Silverlight 3
[C#] MakeNiceSize()
[C#] Zahlensysteme (BIN, HEX, OCT, DEZ) umrechnen
[C#] Erzeugen von Zeichenfolgen durch Permutation
[C#] Form ohne Rahmen verschieben
[VB.NET] Treenode-Tags zur verwendung abfragen [für Anfänger]
[C#] String to char Tarnung

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.