Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo File.Copy (String, String, Boolean)

 

Data di pubblicazione: ottobre 2016

Copia un file esistente in un nuovo file. È consentito sovrascrivere un file con lo stesso nome.

Spazio dei nomi:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public static void Copy(
	string sourceFileName,
	string destFileName,
	bool overwrite
)

Parametri

sourceFileName
Type: System.String

File da copiare.

destFileName
Type: System.String

Nome del file di destinazione. Non può essere una directory.

overwrite
Type: System.Boolean

true se il file di destinazione può essere sovrascritto; in caso contrario, false.

Exception Condition
UnauthorizedAccessException

Il chiamante non dispone dell'autorizzazione richiesta.

-oppure-

destFileName è di sola lettura.

ArgumentException

sourceFileName o destFileName è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi definiti da InvalidPathChars.

-oppure-

sourceFileName o destFileName specifica una directory.

ArgumentNullException

sourceFileName o destFileName è null.

PathTooLongException

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, nelle piattaforme basate su Windows i percorsi devono contenere meno di 248 caratteri e i nomi file meno di 260 caratteri.

DirectoryNotFoundException

Il percorso specificato in sourceFileName o destFileName non è valido (ad esempio si trova in un'unità non mappata).

FileNotFoundException

L'oggetto sourceFileName non è stato trovato.

IOException

destFileName esiste e overwrite è false.

-oppure-

Si è verificato un errore di I/O.

NotSupportedException

Il formato di sourceFileName o destFileName non è valido.

The sourceFileName and destFileName parameters can specify relative or absolute path information. Relative path information is interpreted as relative to the current working directory. This method does not support wildcard characters in the parameters.

The attributes of the original file are retained in the copied file.

For a list of common I/O tasks, see Common I/O Tasks.

The following example copies files to the C:\archives\2008 backup folder. It uses the two overloads of the Overload:System.IO.File.Copy method as follows:

  • It first uses the M:System.IO.File.Copy(System.String,System.String) method overload to copy text (.txt) files. The code demonstrates that this overload does not allow overwriting files that were already copied.

It then uses the M:System.IO.File.Copy(System.String,System.String,System.Boolean) method overload to copy pictures (.jpg files). The code demonstrates that this overload does allow overwriting files that were already copied.

string sourceDir = @"c:\current";
string backupDir = @"c:\archives\2008";

try
{
    string[] picList = Directory.GetFiles(sourceDir, "*.jpg");
    string[] txtList = Directory.GetFiles(sourceDir, "*.txt");

    // Copy picture files.
    foreach (string f in picList)
    {
        // Remove path from the file name.
        string fName = f.Substring(sourceDir.Length + 1);

        // Use the Path.Combine method to safely append the file name to the path.
        // Will overwrite if the destination file already exists.
        File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), true);
    }

    // Copy text files.
    foreach (string f in txtList)
    {

        // Remove path from the file name.
        string fName = f.Substring(sourceDir.Length + 1);

        try
        {
            // Will not overwrite if the destination file already exists.
            File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName));
        }

        // Catch exception if the file was already copied.
        catch (IOException copyError)
        {
            Console.WriteLine(copyError.Message);
        }
    }

    // Delete source files that were copied.
    foreach (string f in txtList)
    {
        File.Delete(f);
    }
    foreach (string f in picList)
    {
        File.Delete(f);
    }
}

catch (DirectoryNotFoundException dirNotFound)
{
    Console.WriteLine(dirNotFound.Message);
}

FileIOPermission

for reading from sourceFileName and writing to destFileName. Associated enumerations: F:System.Security.Permissions.FileIOPermissionAccess.Read, F:System.Security.Permissions.FileIOPermissionAccess.Write

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 1.1
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: