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

时间:2014-10-14 20:37:10

标签: 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(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);

        }
       }

请帮忙

2 个答案:

答案 0 :(得分:4)

这就是这样做的:

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));
}

此外,button4_Click不是一个非常友好的名称。您可能需要考虑将按钮和该功能重命名为有意义的内容。

答案 1 :(得分:2)

如果您知道该文件,只需Delete()

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

根据MSDN,没有针对已经不存在的文件抛出异常。