Utilizzando il seguente codice, sto provando a sovrascrivere un file se esiste. Attualmente getta IOException. Come posso risolvere questo problema?'File.Copy' non sovrascrive un file
File.Copy(filePath, newPath);
Utilizzando il seguente codice, sto provando a sovrascrivere un file se esiste. Attualmente getta IOException. Come posso risolvere questo problema?'File.Copy' non sovrascrive un file
File.Copy(filePath, newPath);
Usa
File.Copy(filePath, newPath, true);
Il terzo parametro è sovrascrivere, quindi se lo si imposta su true verrà sovrascritto il file di destinazione.
quindi chiamare the overload
File.Copy(filePath, newPath, true);
quindi utilizzare l'altra File.Copy(string, string, boolean)
. Il terzo parametro indica se sovrascrivere o meno il file di destinazione se esiste (true
se si desidera sovrascrivere, altrimenti false
).
Ma cosa ti aspettavi? Se la funzione è progettata per essere lanciata quando esiste il file di destinazione, è necessario trovare un modo per aggirare tale problema. Quindi:
File.Copy(string, string)
che cancella il file di destinazione automaticamente.Da MSDN, si può fare:
File.Copy(filePath, newPath, true);
C'è un sovraccarico a questa funzione che contiene un terzo parametro. Questo parametro è chiamato "sovrascrittura". Se si passa true
, finché il file non è di sola lettura, verrà sovrascritto.
ottimo punto con l'attributo di sola lettura. – JohnB
File.Copy(filePath, newPath, bool overwrite)
lo fa.
Questo può aiutare a:
Io uso questa e funziona,
File.Copy(src,des,true); //(string source, string destination, bool overwrite)
riferimento (MSDN): File.Copy Method (String, String, Boolean)
Per "Caccio galleggiante" Seguo la regola utilizzare sempre loro come parametri nominati per chiarezza File.Copy (filePath, newPath, overwrite: true); – t3dodson