J'ai un problème avec la copie de fichiers, si le fichier existe dans le répertoire cible, écrasez-le, sinon ne faites rien. Mais je reçois ce message d'erreur:

An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll
The process cannot access the file [PATH]/TaskRepository.cs 
because it is being used by another process.  

Je n'ai même pas trouvé de solution depuis des heures. J'ai recherché d'autres sujets sur stackoverflow mais je n'ai pas pu comprendre. Mon code est ici

public void EditFiles(List<string> OriginalFiles, List<string> TargetFiles)
{
    foreach (var original in OriginalFiles)
    {
        int i = 0;
        int index = original.LastIndexOf(@"\");
        if (original.Substring(index).Contains("TaskRepository.cs"))
        {
            while (i < TargetFiles.Count)
            {
                if (TargetFiles[i].Contains("TaskRepository.cs") == true)
                {
                    File.Copy(original, TargetFiles[i], true);
                }
                i++;
            }
        }                
    }
}
1
Ömer Çiftci 27 janv. 2019 à 18:13

3 réponses

Meilleure réponse

J'essaierais de copier les fichiers avec lesquels vous souhaitez travailler dans un dossier séparé. Visual Studio est probablement le coupable, mais il peut s'agir de tout ce qui verrouille les fichiers.

Verrouillage des fichiers Visual Studio lors du débogage

0
ChaosPandion 27 janv. 2019 à 15:21

Utilisez-vous la copie de fichier dans le même répertoire, veuillez vérifier ceci ... ou il existe une autre méthode appelée copyto que vous pouvez également utiliser

FileInfo fi = new FileInfo(@"c:\onefile.txt");
fi.CopyTo(@"d:\anotherfile.txt", true); // existing file will be overwritten
0
ChaosPandion 29 janv. 2019 à 01:21

Il semble que votre fichier n'a pas été copié dans le répertoire Je suppose que votre chemin cible est trop long pour être découvert

0
agsk 1 févr. 2019 à 16:15