.NET Framework Déplacer un fichier d'un endroit à un autre


Exemple

File.Move

Pour déplacer un fichier d'un emplacement à un autre, une simple ligne de code peut y parvenir:

File.Move(@"C:\TemporaryFile.txt", @"C:\TemporaryFiles\TemporaryFile.txt");

Cependant, il y a beaucoup de choses qui pourraient mal tourner avec cette opération simple. Par exemple, que se passe-t-il si l'utilisateur qui exécute votre programme ne dispose pas d'un lecteur nommé «C»? Et s'ils le faisaient, mais ils ont décidé de le renommer en «B» ou «M»?

Que se passe-t-il si le fichier source (le fichier dans lequel vous souhaitez déplacer) a été déplacé à votre insu - ou s'il n'existe tout simplement pas?

Cela peut être contourné en vérifiant d'abord si le fichier source existe:

string source = @"C:\TemporaryFile.txt", destination = @"C:\TemporaryFiles\TemporaryFile.txt";
if(File.Exists("C:\TemporaryFile.txt"))
{
    File.Move(source, destination);
}

Cela garantira que le fichier existe à ce moment-là et peut être déplacé vers un autre emplacement. Parfois, un simple appel à File.Exists ne suffira pas. Si ce n'est pas le cas, vérifiez à nouveau, indiquez à l'utilisateur que l'opération a échoué ou gérez l'exception.

Une FileNotFoundException n'est pas la seule exception que vous êtes susceptible de rencontrer.

Voir ci-dessous pour les exceptions possibles:

Type d'exception La description
IOException Le fichier existe déjà ou le fichier source est introuvable.
ArgumentNullException La valeur des paramètres Source et / ou Destination est nulle.
ArgumentException La valeur des paramètres Source et / ou Destination est vide ou contient des caractères non valides.
UnauthorizedAccessException Vous n'avez pas les autorisations requises pour effectuer cette action.
PathTooLongException La source, la destination ou le ou les chemins spécifiés dépassent la longueur maximale. Sous Windows, la longueur d'un chemin doit être inférieure à 248 caractères, alors que les noms de fichiers doivent comporter moins de 260 caractères.
DirectoryNotFoundException Le répertoire spécifié est introuvable.
NotSupportedException Les chemins d'accès ou les noms de fichiers source ou destination sont dans un format non valide.