2009-06-02 13 views
3

Ich brauche einige Experten für reguläre Ausdrücke für eine zusätzliche Hand. :)Wie bekomme ich einen Dateinamen von einem Pfad?

Ich habe verschiedene Pfade, verschiedene Ordner, unterschiedliche Anzahl von Ordnern.

Meine Frage: Wie bekomme ich das letzte - den Dateinamen?

Zum Beispiel im Pfad:

C: \ a \ b \ c \ d \ e \ fgh.ddj

Wie kann ich "fgh.ddj" mit regulären Ausdrücken zu bekommen?

Antwort

25

Sie nicht regex die benötigen, können Sie es tun einfach so, es ist ein system.io Hilfsfunktion:

myfilename = Path.GetFileName(mypath); 
+0

Und wenn Sie mehr als nur die Dateinamen dann Fileinfo finfo = new Fileinfo (path); Dann enthält info Pfad, fullname, directoryname und mehr ... –

+0

Wie Methoden auf Path: Path.GetDirectoryName, Path.GetFullPath, etc. –

+3

@Vinko: FYI, gibt es statische Helferfunktionen für die meisten davon in System.IO. Pfad, System.IO.File und System.IO.Directory. Meistens können Sie einen Einzeiler schreiben, anstatt FileInfo zu verwenden. –

-4

Wenn Sie Perl installiert haben, dann können Sie so etwas wie dieses versuchen ...

#!/usr/bin/perl 

use strict; 

my $fullname = 'C:\a\b\c\d\e\fgh.ddj'; 
my $file = (split /\\/, $fullname)[-1]; 
print $file; 
+0

humm (?!) ... C# ist eines der Tags, oder? ... – balexandre

1

Sie können auch FileInfo verwenden. Bei der Verwendung von FileInfo spielt es eigentlich keine Rolle, ob die Datei vorhanden ist oder nicht.

var fileInfo = new FileInfo("C:\a\b\c\d\e\fgh.ddj"); 
var fileName = fileInfo.Name; 
//this returns "fgh.ddj" 

Wenn die Datei vorhanden ist, natürlich gibt es viele Informationen über die Dateigröße, die letzten Zugriffs usw.

Verwandte Themen