2013-02-27 8 views
5

Sto usando Python ma penso che lo stesso problema esista in C#.Windows: come posso spostare un file con un percorso lungo nel cestino?

Mi piacerebbe essere in grado di supportare percorsi estesi (percorsi con len> 260 che sono rappresentati come //?/C:/blah/blah). Sembra che il modo standard per spostare i file nel cestino sia tramite SHFileOperationW o SHFileOperation.

In python la libreria xplatform utile, move2trash, utilizza SHFileOperationW. Alcuni articoli su C# dicono di usare la stessa cosa.

Il problema con SHFileOperationW è che non supporta percorsi estesi. Questa è una limitazione generale degli strumenti SH.

Qualcuno ha qualche trucco per gestire il cestino e percorsi estesi?

link di riferimento: C# version, Python version

+1

Ho appena trovato questa domanda StackOverflow, http://stackoverflow.com/questions/11737109/how-can-i-delete-a-folder-or-file-with-path-too-long-in-recycle- bidone. Indagare per vedere se contiene la risposta. – greenhat

+0

Questo è per Windows, giusto? – EOL

+0

Lo stesso problema potrebbe esistere per qualsiasi lingua che utilizza effettivamente il Win32API. (Alla luce di ciò potrebbe essere meglio usare [tag: agnostico linguistico] invece dei tag di linguaggio casuali.) – millimoose

risposta

0

Una rapida ricerca per "PathTooLongException" si trasforma in un bel paio di discussioni su Stack Overflow su di esso se si vuole avere uno sguardo ad alcune soluzioni di C#. Potrebbe essere possibile recuperare il "nome breve" e utilizzarlo per spostarlo. Inoltre, puoi vedere e vedere come l'hanno gestito in questa libreria C# con una soluzione alternativa a http://bcl.codeplex.com/wikipage?title=Long%20Path

0

Non è così. Non è possibile inserire un file nel cestino, il cui percorso è più lungo di 259 caratteri.

+1

Non penso che sia abbastanza vero, perché puoi sicuramente farlo in Vista Explorer. IIRC, il modo in cui funziona è utilizzando lo stesso percorso di spremitura trucchi che consentono di vedere il file in Explorer, in primo luogo. – abarnert

Problemi correlati