Comment puis-je supprimer un fichier en C #, par exemple C:\test.txt
, bien que vous appliquiez le même type de méthode que dans les fichiers de commandes, par exemple.
if exist "C:\test.txt"
delete "C:\test.txt"
else
return nothing (ignore)
Utilisez System.IO.File.Delete comme suit:
System.IO.File.Delete(@"C:\test.txt")
De la documentation:
Si le fichier à supprimer n'existe pas, aucune exception n'est levée.
if (System.IO.File.Exists(@"C:\test.txt"))
System.IO.File.Delete(@"C:\test.txt"));
mais
System.IO.File.Delete(@"C:\test.txt");
fera de même tant que le dossier existe.
Vous pouvez importer l'espace de noms System.IO
à l'aide de:
using System.IO;
Si le chemin d'accès au fichier représente le chemin d'accès complet au fichier, vous pouvez vérifier son existence et le supprimer comme suit:
if(File.Exists(filepath))
{
try
{
File.Delete(filepath);
}
catch(Exception ex)
{
//Do something
}
}
Si vous voulez éviter un DirectoryNotFoundException
, vous devrez vous assurer que le répertoire du fichier existe bien. File.Exists
accomplit cela. Une autre solution consisterait à utiliser les classes d’utilité Path
et Directory
comme suit:
string file = @"C:\subfolder\test.txt";
if (Directory.Exists(Path.GetDirectoryName(file)))
{
File.Delete(file);
}
if (System.IO.File.Exists(@"C:\Users\Public\DeleteTest\test.txt"))
{
// Use a try block to catch IOExceptions, to
// handle the case of the file already being
// opened by another process.
try
{
System.IO.File.Delete(@"C:\Users\Public\DeleteTest\test.txt");
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
return;
}
}
if (File.Exists(path))
{
File.Delete(path);
}
Parfois, vous souhaitez supprimer un fichier quel que soit le cas (quelle que soit l'exception qui se produit, supprimez le fichier). Pour de telles situations.
public static void DeleteFile(string path)
{
if (!File.Exists(path))
{
return;
}
bool isDeleted = false;
while (!isDeleted)
{
try
{
File.Delete(path);
isDeleted = true;
}
catch (Exception e)
{
}
Thread.Sleep(50);
}
}
Remarque: Une exception n'est pas levée si le fichier spécifié n'existe pas.
Si vous lisez à partir de ce fichier à l'aide de FileStream et que vous voulez ensuite le supprimer, assurez-vous de fermer FileStream avant d'appeler File.Delete (chemin). J'ai eu ce problème.
var filestream = new System.IO.FileStream(@"C:\Test\PutInv.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
filestream.Close();
File.Delete(@"C:\Test\PutInv.txt");