2009-09-08 13 views
10

Intento trabajar con DirectoryInfo, FileInfo con una ruta muy larga.DirectoryInfo, FileInfo y ruta muy larga

  • Trato uso \\ \ c: ruta \ larga (tengo caracter ilegal con fileinfo y DirectoryInfo)
  • Trato archivo de uso: // c:/larga trayectoria (tengo uri no es compatible)

¿Puedo usar ~ en una ruta u otra cosa.

He leído esto post pero me gustaría utilizar otra forma de llamar a una API. ¿Hay alguna otra solución?

Hay un artículo de microsoft para su uso \\? en la ruta del archivo link text

La pregunta es ¿Cómo puedo trabajar con muy larga trayectoria, y DirectoryInfo y FileInfo para el camino que están más larga que 256 Char

Respuesta

10

Mirando el Long Paths in .NETblog postseries, parece que va a la API Win32 a través de P/Invoke es la única solución en este momento, aparte de reestructurar sus directorios para que no llegue al límite.

4

Una manera en que resolví este problema en el pasado fue usando la biblioteca de Delimon llamada Delimon.Win32.IO. Parece que su sitio http://www.delimon.be está desactivado en este momento. Pero lo había usado en un proyecto en el pasado y funcionó como un campeón. Puedo intentar encontrarlo más tarde esta noche o simplemente tratar de encontrar un enlace válido en algún lugar a través de google. Aclamaciones. Aquí hay otro enlace hablando sobre este tema.

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

11

La biblioteca está disponible de nuevo on this location.

This is a .NET Library escrito contra el .NET Framework 2.0 y se puede utilizar para acceso muy larga de carpetas y archivos de una aplicación .NET.

Desde el .NET Framework no admite nombres de archivo largos :-( que tenía que escribir una biblioteca que llama a la API de Win32 y envuelve esos funciones como System.IO. Si bien no es una réplica completa de la System.IO lo hace tienen la mayoría de los objetos y funciones disponibles.

Delimon.Win32.IO reemplaza las funciones básicas del archivo de System.IO con nombres de ruta largos soporte para caracteres de hasta 32.767 caracteres Así que adiós MAX_PATH problemas

¿Alguna vez se encontró con este problema?

System.IO.PathTooLongException no fue administrado.

mensaje:

La ruta especificada, el nombre de archivo o ambos son demasiado largos. El nombre completo del archivo calificado debe tener menos de 260 caracteres, y el nombre del directorio debe tener menos de 248 caracteres.

Cuestiones relacionadas