PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [c#] Kopieren mit unbekanntem Zielverzeichnis


Matrix316
2007-12-26, 17:23:56
Kann ich beim Kopieren eines Files irgendwie beim Zielpfad irgendwie einen Platzhalter verwenden? Ich weiß z.B. dass das Zielverzeichnis mit "xy_" anfängt, aber was danach kommt weiß ich nicht.

Probiere ich es mit ...\\xy_*\\ gibts einen Fehler von wegen illegalem Zeichen.

Oder gibts eine Möglichkeit von einem Verzeichnis den Namen zu bekommen, wenn ich nur weiß, dass dieses mit "xy_" anfängt?

Matrix316
2007-12-26, 17:33:54
Na toll, hat sich erledigt. :rolleyes:

Warum finde ich meistens selbst die Lösung, wenn ich hier einen Thread aufmache?

EDIT: Habe mir mit GetDirectories die Verzeichnisse geben lassen und dann verglichen ob xy im Namen vorhanden ist.

Bietchiebatchie
2007-12-26, 19:37:52
Damit der Thread nicht vollkommen sinnlos ist ;) :


Probiere ich es mit ...\\xy_*\\ gibts ...

Du kannst die Escape-Sequenzen weglassen, wenn du ein @ davor setzt, also:
"C:\\Bla\\Blubb" -> @"C:\Bla\Blubb"

Gast
2007-12-27, 13:19:09
Ich würde sowieso nicht über C# kopieren. Verwende lieber SHFileOperation über P/Invoke oder eben über C++/CLI.

http://msdn2.microsoft.com/en-us/library/bb762164.aspx

Du kannst zwar nicht ein Teilverzeichnis mit Wildcards angeben, aber du kannst z.B. ein Verzeichnis mit allen Unterverzeichnissen/Dateien kopieren.

Außerdem kannst du über die nativen Funktionen auch die max. Unicode Länge für den Pfadnamen verwenden, indem du den Pfad mit //?/ prefixt. Denn so unterstützt das .NET Framework nur max. 260 Zeichen bei den ganzen IO Funktionen.

Oder du verwendest eben FindFirstFile() bzw. FindNextFile() und durchläufst das Verzeichnis rekursiv. Da kannst du auch das Prefix //?/ verwenden.