Domanda

Ho un app che può rendere le immagini Modifica. In alcuni casi, questo rende la dimensione del file più piccolo, in alcuni casi più grandi.

Il programma non dispone di un'opzione per "non sostituire il file se il risultato è uno spazio più grande".

Così ho scritto un po 'di C # app per cercare di risolvere questo problema.

Invece di sovrascrivere i file, io faccio l'applicazione scrivere il risultato in una cartella sotto quella attuale e il nome della cartella di prova.

Il C # app che ho scritto confronta afferra il contenuto di entrambe le cartelle e mette il percorso completo del file (s) in due oggetti List. Ho poi confrontare e sostituire.

La sostituzione non funziona però. Ottengo il seguente IOException:

  

Impossibile rimuovere il file di essere   sostituito

La posizione è su un hard-disk esterno, su cui ho il pieno diritto.

Ora, so che posso solo fare File.Delete e File.Move in questo ordine, ma questa eccezione ha ottenuto mi ha interessato in perché questo particolare lavoro di installazione abituato.

Ecco il codice sorgente: http://pastebin.com/4Vq82Umu

E sì, il file specificato come ultimo argomento della funzione Sostituisci esiste.

È stato utile?

Soluzione

verificare che il file da sostituire non è caricato in memoria, che potrebbe causare un blocco nel file

tenta di utilizzare l'istruzione using di disporre automaticamente la risorsa,

secondo la documentazione:

Se destinationBackupFileName si trova su una diversa unità che non viene rimosso come gli stati di documentazione, invece un'IOException è gettato con il messaggio "Impossibile rimuovere il file da sostituire". è gettato

http://msdn.microsoft.com/en-us/library /9d9h163f.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top