2009-09-08 8 views
10

Provo a lavorare con DirectoryInfo, FileInfo con un percorso molto lungo.DirectoryInfo, FileInfo e percorso molto lungo

  • provo uso \\ \ c: \ percorso lungo (ho ottenuto caracter illegale con FileInfo e DirectoryInfo)
  • cerco file di uso: // c:/percorso lungo (mi sono URI non supportato)

Posso usare ~ in un percorso o qualcos'altro.

Ho letto questo post ma vorrei usare un altro modo che chiama un'API. Sono altre soluzioni?

C'è un articolo da microsoft per l'uso \\? nel percorso del file link text

la domanda è come posso lavorare con percorso molto lungo, e DirectoryInfo e FileInfo per il percorso che sono più lungo che 256 char

risposta

10

Guardando il Long Paths in .NETblog postseries, sembra andare a l'API Win32 tramite P/Invoke è l'unica soluzione al momento, oltre a ristrutturare le directory in modo da non raggiungere il limite.

4

Un modo in cui ho risolto questo problema in passato era l'utilizzo della libreria di Delimon chiamata Delimon.Win32.IO. Sembra che il suo sito http://www.delimon.be non sia disponibile al momento. Ma l'avevo usato su un progetto in passato e funzionava come un campione. Posso provare a rintracciarlo per te più tardi stasera o semplicemente provare a trovare un link valido da qualche parte tramite Google. Saluti. Ecco un altro link che parla di questo problema.

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/2541a9b9-acd7-4338-89b1-dfc0408e41b5

11

La Biblioteca è nuovamente disponibile on this location.

This is a .NET Library scritto contro il .NET Framework 2.0 e può essere utilizzato per l'accesso alle cartelle molto lungo e file da un'applicazione .NET.

Dal momento che il .NET Framework non supporta nomi di file lunghi :-( ho dovuto scrivere una libreria che chiama l'API Win32 e avvolge quelle funzioni come System.IO. Anche se non è una replica completa della System.IO lo fa avere maggior parte degli oggetti e delle funzioni disponibili.

Delimon.Win32.IO sostituisce le funzioni di file di base di System.IO con nomi di percorso lungo supporto per i caratteri fino a 32.767 caratteri Quindi bye bye MAX_PATH problema

Hai mai avuto questo problema?

System.IO.PathTooLongException non gestito.

Messaggio:

Il percorso specificato, il nome del file, o entrambi sono troppo lunghi. Il nome file completo deve essere inferiore a 260 caratteri e il nome della directory deve essere inferiore a 248 caratteri.

Problemi correlati