J'ai commencé à rencontrer un problème avec File.Copy
. Cela fonctionne très bien pour mon script de création de données, en réussissant à dupliquer des milliers de fichiers sans problème. Mon problème se produit lors de la tentative de créer des fichiers temporaires plus tard dans mon code.File.Copy Accès non autorisé C#
J'ai ajouté l'exemple de code ci-dessous qui ne fonctionne pas correctement. J'ai essayé de nombreuses façons d'essayer de résoudre cela en vain. Ce que je fais est la copie de certains fichiers de données utilisateur créés dans un répertoire sur le lecteur C dans un dossier temporaire dans ce dossier de données utilisateur.
code
foreach (string originalFile in OriginalDataFileNames)
{
string tempFile = originalFile;
TempDataFiles.Add(tempFile);
Console.WriteLine("GlobalDataCtrl: Original Data File: " + XWSDataDirectory + "\\" + tempFile);
Console.WriteLine("GlobalDataCtrl: Saved Temp Data File: " + tempPath + "\\" + tempFile);
File.Copy(XWSDataDirectory + "\\" + originalFile, tempPath + "\\" + tempFile);
}
Erreur de sortie
The program '[6256] XtremeWrestlingSim.vshost.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.
Toute aide est appréciée, merci à l'avance!
SOLUTION:
FileStream outputFS = null;
FileStream inputFS = null;
outputFS = new FileStream(tempPath + "\\" + tempFile, FileMode.CreateNew, FileAccess.ReadWrite);
using (inputFS = new FileStream(XWSDataDirectory + "\\" + originalFile, FileMode.Open))
{
inputFS.CopyTo(outputFS);
}
outputFS.Close();
inputFS.Close();
Je ne sais pas comment bien formaté c'est, mais cela fonctionne. Remplacez File.Copy
par le code ci-dessus.
-vous écrire ces fichiers vous-même, et puis essayer plus tard de les copier? Il est possible que vous ne fermiez pas une poignée de fichier quelque part. Assurez-vous d'utiliser les instructions 'using' ou appelez' .Close() 'à chaque fois que vous écrivez un fichier. –
Copie possible de [C# UnauthorizedAccessException dans File.Copy] (http://stackoverflow.com/questions/18554108/c-sharp -unauthorizedaccessexception-in-file-copy) – krillgar
Je demande pourquoi vous créez un nouveau fichier (File.Create) et ensuite copiez un fichier existant par-dessus (File.Copy). –