2012-07-31 28 views
5

Tengo el programa que elimina y copia algunas carpetas o archivos con larga ruta (cuando longitud> MAX_PATH) En este programa utilizo el prefijo \\?\ que me da la posibilidad de eliminar carpetas o archivos con ruta larga pero solo en la función simple Delete(). Necesito eliminar archivos en la Papelera de reciclaje y para esto necesito usar la función SHFileOperation que me da la posibilidad de eliminar archivos en la papelera de reciclaje, pero esta función no admite el prefijo \\?\. ¿Alguien puede ayudarme con este problema?¿Cómo puedo eliminar una carpeta o archivo con ruta demasiado tiempo en la papelera de reciclaje?

Hay alguna alternativa para SHFileOperation. ¿Cómo puedo eludir este problema?

Algunos enlaces:

Respuesta

6

La papelera de reciclaje es una carpeta especial shell. Es parte del caparazón. Sin embargo, el shell tiene la limitación de que las rutas no pueden ser más largas que MAX_PATH. Por lo tanto, la misma limitación se aplica a la papelera de reciclaje.

Simplemente no puede poner archivos/carpetas con rutas largas en la papelera de reciclaje. Imposible.

Cuestiones relacionadas