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 j'obtiens ce message d'erreur:
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++; } } } }
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
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.
3 Réponses :
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.
Merci pour la réponse, mais elle est déjà activée modifier et continuer
@ ÖmerÇiftci - Selon la réponse, Edit And Continue verrouille tous les fichiers de la solution lors du débogage.
Tu es génial :) Merci d'avance, tu m'as sauvé de cette obsession: D ça marche, je résous ce problème depuis des heures.
@ ÖmerÇiftci - Rappelez-vous simplement que plus vous faites cela, plus vous vous sentirez stupide, alors continuez jusqu'à ce que vous le compreniez.
Je continuerai et je n'abandonnerai jamais, merci encore :)
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
Salut, merci pour ta réponse. J'essaie de copier depuis C: \\ Users \\ omerc \\ Downloads \\ Dosyalar \\ Dosyalar \\ COMED_EMR \\ Modules \\ Medical \\ aa a.Modules.Medical \\ R epositories \\ Workflo w \\ TaskRepository.cs vers "C: \\ Users \\ omerc \\ Documents \\ COMED_EMR \\ Modules \\ Pusula \\ Co Med.EMR.Modules.Pusu la \\ Repositories \\ Wo rkflow \\ TaskReposito ry.cs "ici. J'ai utilisé la méthode CopyTo mais rien n'a changé @agsk
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
Le problème n'est pas dans votre code (du moins pas dans le code que vous avez fourni). Lisez simplement le message d'erreur et réfléchissez à nouveau ou fournissez un autre code si vous êtes vraiment sûr qu'un problème est du côté C #.
Vous pouvez utiliser Process Explorer ( docs.microsoft.com/en-us/ sysinternals / downloads /… ) et trouvez-y le programme qui a verrouillé votre fichier. (Ctrl + F et collez le nom de votre fichier)
C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5.2 \ mscorlib .dll il y en a deux. @ OndřejKubíček
mscorlib.dll est une bibliothèque. Il ne peut verrouiller lui-même aucun fichier car il ne peut pas être exécuté en tant que processus (en commun, seuls les fichiers .exe le peuvent), il devrait donc s'agir d'un processus différent qui verrouille votre fichier.
Hé, j'ai trouvé, explorer.exe verrouille mon fichier. Qu'est-ce qui peut causer ce problème? @ OndřejKubíček
explorer.exe est l'Explorateur Windows. Je sais qu'il peut verrouiller les dossiers qu'il explore. Mais c'est bizarre de verrouiller les fichiers. Essayez peut-être de fermer toutes les fenêtres de l'Explorateur Windows, puis réessayez.
Mon faux, en fait, il semble myprojectname.exe verrouiller mon fichier, mon erreur. Mais comment résoudre ce problème? Pourquoi verrouille-t-il le fichier? As-tu une idée? @ OndřejKubíček
@ ÖmerÇiftci - Jetez un œil à ma réponse.