Dies wurde durch die BCL-Team eingehend diskutiert worden ist, finden Sie in der blog entries
In Essenz gibt es keine Möglichkeit, dies zu tun innerhalb .Net-Code und bleiben Sie bei der BCL. Zu viele Funktionen beruhen darauf, dass der Pfadname kanonisiert werden kann (was sofort die Verwendung von Funktionen auslöst, die erwarten, dass MAX_PATH befolgt wird).
Sie könnten alle Win32-Funktionen, die die "\\?" -Syntax unterstützen, umhüllen, mit denen Sie in der Lage wären, eine Reihe von Funktionen mit langem Pfad zu implementieren, aber dies wäre umständlich.
Da eine große Anzahl von Werkzeugen (einschließlich Explorer [1]) kann lange Pfadnamen nicht umgehen ist es nicht ratsam, diesen Weg zu gehen, es sei denn, Sie sind glücklich, dass alle Interaktion mit dem resultierenden Dateisystem über Ihre Bibliothek geht (oder die begrenzte Anzahl von Werkzeugen, die dafür gebaut werden, wie Robocopy)
Als Antwort auf Ihre spezifischen Bedürfnisse würde ich untersuchen, ob die Verwendung von Robocopy direkt ausreichen würde, um diese Aufgabe zu erfüllen.
[1] Vista hat Möglichkeiten, um das Problem mit etwas Phantasie Umbenennung unter der Haube zu mildern, aber das ist bestenfalls zerbrechlich)
MAX_PATH 260 ist, die Kombination des Servers/der Freigabe macht es wahrscheinlich in Ihrem Fall 248. – user7116
jede endgültige Lösung mit voller Quellcode-Probe darüber arbeiten? – Kiquenet
Ich habe herausgefunden, dass maxpath nicht wirklich 260, sondern 259 ist. – brighty