C# 如何检查特定文件并将其删除

C# 如何检查特定文件并将其删除,c#,visual-studio-2010,visual-studio,C#,Visual Studio 2010,Visual Studio,我使用的是C#winform,我想在其中搜索文件夹中的特定文件并将其删除。 我怎样才能做到这一点。我正在尝试以下代码 private void button4_Click(object sender, EventArgs e) { string Filename = img_path.Text; // here i have the filename "sample.grf" if (Directory.GetFiles(@"E:\Debug").Where

我使用的是C#winform,我想在其中搜索文件夹中的特定文件并将其删除。 我怎样才能做到这一点。我正在尝试以下代码

  private void button4_Click(object sender, EventArgs e)
    {
    string Filename = img_path.Text; // here i have the filename "sample.grf"
         if (Directory.GetFiles(@"E:\Debug").Where(x => x.Name == Filename).Any()) // getting error here
        {
           // i want to search here in above folder and delete the file.. how to do this
                System.IO.File.Delete(/dont know how to delte the particular file);

        }
       }

请提供帮助

只需这样做:

File.Delete(Path.Combine(@"E:\Debug", Filename));
不需要先检查文件是否存在。否则,
File.Delete
将不起任何作用

如果您可能有任何安全问题(例如用户输入
。\SomethingElse\Important.doc),则需要确保该字段仅包含一个文件名。一种方法是:

if (Filename.ToCharArray().Intersect(Path.GetInvalidFileNameChars()).Any())
    return;
因此,您的整个功能可能如下所示:

private void button4_Click(object sender, EventArgs e)
{
    string Filename = img_path.Text;

    if (string.IsNullOrEmpty(Filename))
        return;

    if (Filename.ToCharArray().Intersect(Path.GetInvalidFileNameChars()).Any())
        return;

    File.Delete(Path.Combine(@"E:\Debug", Filename));
}

另外,
按钮4\u Click
不是一个很好维护的名称。您可能想考虑将按钮和该函数重命名为有意义的东西。

如果您知道该文件,只需“代码>删除())<代码>:

File.Delete("C:\\mypath\\myfile.txt");

对于已经不存在的文件,不会引发异常。

为什么不简单地使用
file.Exists
?另外,获取目录时出现了什么错误。GetFiles
不会像您假设的那样返回
FileInfo[]
,请使用
if(new DirectoryInfo(@“E:\Debug”).GetFiles().Where(x=>x.Name==Filename.Any())
,但如果(File.Exists(Path.Combine(@“E:\Debug”,Filename)),您可以执行
x是一个字符串,因此可能x==Filename,我认为每个人都忽略了这一点,因为他可能不知道整个路径。只需输入文件名。删除
按钮中的所有代码,单击
,然后添加一行:
文件。删除(Path.Combine(@“E:\Debug”,img_Path.Text))'string'不包含'Name'的定义,并且找不到接受'string'类型的第一个参数的扩展方法'Name'(是否缺少using指令或程序集引用?@RadioSpace是的,我注意到了这一点,并在发布注释后立即编辑了注释(刷新页面)错误:-
进程无法访问文件“\\bin\Debug\sample.grf”,因为另一个进程正在使用该文件。
使用abve文件发送到打印机。之后我需要删除。有没有什么方法可以让我等到整个过程结束,然后再研究这个问题file@StacyKebler在尝试删除文件之前,必须关闭文件上的所有文件句柄。因为我不知道你在代码的其他地方对这个文件做什么,所以我在这里帮不上什么忙。这是另一个问题。