Answers:
使用File类非常简单。
if(File.Exists(@"C:\test.txt"))
{
File.Delete(@"C:\test.txt");
}
File.Exists
检查,因为File.Delete
如果文件不存在则不会抛出异常,尽管如果使用的是绝对路径,则需要进行检查以确保整个文件路径均有效。
@
在文件路径之前有一个?对我来说,没有它。
An exception is thrown if the specified file does not exist
。
System.IO.File.Delete(@"C:\test.txt");
就足够了。谢谢
您可以System.IO
使用以下命令导入名称空间:
using System.IO;
如果文件路径表示文件的完整路径,则可以按以下步骤检查文件的存在并将其删除:
if(File.Exists(filepath))
{
try
{
File.Delete(filepath);
}
catch(Exception ex)
{
//Do something
}
}
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;
}
}
如果要使用FileStream从该文件中读取文件,然后要删除它,请确保在调用File.Delete(path)之前关闭FileStream。我有这个问题。
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();
。
有时,无论如何都希望删除文件(无论发生什么异常,请务必删除文件)。对于这种情况。
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);
}
}
注意:如果指定的文件不存在,则不会引发异常。
这将是最简单的方法,
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
System.Threading.Thread.Sleep(20);
}
Thread.sleep
将有助于完美地工作,否则,如果我们执行复制或写入文件,将影响下一步。
我做的另一种方法是
if (System.IO.File.Exists(filePath))
{
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.IO.File.Delete(filePath);
}