我该如何在C#中删除一个文件,例如C:\ test.txt
,并应用类似于批处理文件的方法呢?
if exist "C:\test.txt"
delete "C:\test.txt"
else
return nothing (ignore)
使用System.IO.File.Delete方法,如下所示:
System.IO.File.Delete(@"C:\test.txt")
根据文档说明:
如果要删除的文件不存在,则不会抛出任何异常。
System.IO.File.Delete(@"C:\test.txt");
就足够了。谢谢。 - Berkay TurancıFile.Delete(path);
会抛出异常,我以前遇到过“未知错误“1346””。 - vapcguySystem.IO
命名空间:using System.IO;
if(File.Exists(filepath))
{
try
{
File.Delete(filepath);
}
catch(Exception ex)
{
//Do something
}
}
if (System.IO.File.Exists(@"C:\test.txt"))
System.IO.File.Delete(@"C:\test.txt"));
但是
System.IO.File.Delete(@"C:\test.txt");
只要文件夹存在,就会执行相同的操作。
如果你想避免出现DirectoryNotFoundException
错误,你需要确保该文件所在的目录确实存在。使用File.Exists
可以做到这一点。另一种方法是利用Path
和Directory
实用类,如下所示:
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);
}
if (File.Exists(Path.Combine(rootFolder, authorsFile)))
{
// If file found, delete it
File.Delete(Path.Combine(rootFolder, authorsFile));
Console.WriteLine("File deleted.");
}
动态
string FilePath = Server.MapPath(@"~/folder/news/" + IdSelect)
if (System.IO.File.Exists(FilePath + "/" + name+ ".jpg"))
{
System.IO.File.Delete(FilePath + "/" + name+ ".jpg");
}
删除目录中的所有文件
string[] files = Directory.GetFiles(rootFolder);
foreach (string file in files)
{
File.Delete(file);
Console.WriteLine($"{file} is deleted.");
}
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");
using
语句,其中 File.Delete()
将放在括号外。在您的示例中,您还应该执行 filestream.Dispose();
。 - vapcguypublic 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);
}
}
@
符号?我不加也能正常工作。 - PascalFile.Delete(path);
会抛出异常,我以前遇到过“未知错误“1346””。 - vapcguy