Après avoir copié un fichier dans un répertoire temporaire, je ne parviens pas à supprimer la copie en raison d'une exception UnauthorizedAccessException. L'idée ici est d'obtenir une copie du fichier, le compresser et ensuite supprimer la copie, mais après avoir enlevé tout le code entre File.Copy
et File.Delete
je reçois toujours l'exception. Quitter le programme libère le verrou et me permet de supprimer la copie sans problème.Impossible de supprimer le fichier temporaire après File.Copy dans C#
Existe-t-il un moyen de copier sans provoquer ce verrouillage persistant (et conserver les métadonnées de fichier comme LastModified)? Ou un moyen de libérer la serrure? Devrait-il y avoir un verrou sur le fichier copié après la fin du File.Copy
? J'utilise Visual C# 2010 SP1 ciblant .NET Framework 4.0.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Xml;
namespace Test
{
class Program
{
static void Main(string[] args)
{
String FileName = "C:\\test.txt";
// Generate temporary directory name
String directory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
// Temporary file path
String tempfile = Path.Combine(directory, Path.GetFileName(FileName));
// Create directory in file system
Directory.CreateDirectory(directory);
// Copy input file to the temporary directory
File.Copy(FileName, tempfile);
// Delete file in temporary directory
File.Delete(tempfile);
}
}
}
Run VS 2010 en tant qu'administrateur –
Est-il possible que vous ne fermez pas tempFile dans 'Autres opérations performed' – I4V
@JibranKhan en cours d'exécution en tant qu'administrateur n » t aide. – jveazey