在C#中删除未锁定的文件

时间:2011-08-07 23:59:09

标签: c# file delete-file

在C#程序中,我正在创建文件。我想使用此命令删除一个文件: -

File.Delete(killFile);

killFile的值为"C:\Documents and Settings\MehdiAnis\My Documents\outfile_0020.csv" killFile是一个现有文件。

运行删除命令后,文件仍在目录中。删除后,我添加了FileInfo代码以检查文件是否存在,

FileInfo fi = new FileInfo(killFile);

现在,fi.Exists显示错误

我不确定是什么问题,是否是许可问题?我刚刚在自己的文件夹中写了文件,为什么我不能删除它?一旦创建了文件,我就不打开它或用它做任何事情,所以它不应该被锁定。

可能出现什么问题,我应该在哪里看?

2 个答案:

答案 0 :(得分:3)

根据您在http://i548.photobucket.com/albums/ii341/MehdiAnis/cprob.jpg

发布的屏幕截图

在您的屏幕截图中,资源管理器窗口显示名称为“_0020.csv”的文件。根据调试器窗口,您传入的文件名以“_20.csv”结尾。您正在使用实际不存在的文件名调用File.Delete,因此不会删除任何文件。

您需要使用0填充格式化“killFile”变量。我假设您正在添加一些计数器,如killfile = killFile + i.ToString()。试试killfile = killFile + i.ToString("0000")

答案 1 :(得分:0)

根据MSDN,“如果要删除的文件不存在,则不会抛出任何异常。”

您可能需要使用File.Exists 检查是否存在要删除的文件尝试删除它。我认为您的问题是您希望删除的文件不是您在文件夹中看到的文件。