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

C# 在C中删除未锁定的文件#,c#,file,delete-file,C#,File,Delete File,在C#程序中,我创建文件。我想使用以下命令删除一个文件:- File.Delete(killFile); killFile有一个值=“C:\Documents and Settings\MehdiAnis\My Documents\outfile\u 0020.csv” killFile是一个现有文件 运行Delete命令后,文件仍在目录中。删除之后,我添加了FileInfo代码来检查文件是否存在 FileInfo fi = new FileInfo(killFile); 现在,fi.Exi

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

File.Delete(killFile);
killFile有一个值=
“C:\Documents and Settings\MehdiAnis\My Documents\outfile\u 0020.csv”
killFile是一个现有文件

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

FileInfo fi = new FileInfo(killFile);
现在,fi.Exists显示为false

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


可能有什么问题,我还应该去哪里寻找

根据您发布的屏幕截图

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

您需要使用0填充设置“killFile”变量的格式。我假设您正在向它添加一些计数器,如
killfile=killfile+I.ToString()
。请根据“如果要删除的文件不存在,则不会引发异常”尝试
killfile=killfile+i.ToString(“0000”)


在尝试删除文件之前,您可能需要使用file.Exists检查要删除的文件是否存在。我想你的问题是你希望删除的文件不是你在文件夹中看到的文件。

如果你在这个命令周围放一个try…catch,catch all exception,你会看到什么?只是一个想法:你是在Windows7系统上吗?我以前在我自己的代码中看到过,问题是我不记得确切的解决方案。它要么是带有UAC(以管理员身份运行应用程序)的内容,要么是对文件/文件夹的权限。明天有机会查看时,我将添加另一条评论。如果您使用的是Windows Vista或Windows 7,“我的文档”不在该位置,而是(通常)在
c:\users\\My Documents
上。您可以使用
Environment.GetFolderPath(SpecialFolder.MyDocuments)
来获取所需的实际路径,而不管操作系统是什么。Yas4891&dlev::否,它是Windows 2003 Server,一个终端服务器,我远程在其中编码。我可以右键单击->删除,或者从命令提示符下删除同一个文件,但不能从代码本身删除。我认为,如果对不存在的文件调用
file.delete
,它将引发异常。不,它不会。请参阅“如果要删除的文件不存在,则不会引发异常”的备注部分。@Scott:是的,你是对的,我现在测试了它,发现如果文件不存在,它不会引发异常。。的确!我使用string.Format(“{0:d4}”,fileCount)来创建文件,但是当为killFile赋值时,只使用fileCount,因此“0020”!='20'.