迭代存储在列表中的路径然后删除它们

时间:2013-06-04 20:25:17

标签: c# database search

想知道在C#中使用某种批量进行高级搜索后是否可以删除某些文件。 我相信我可以这样做:

  1. 搜索文件
  2. 将文件存储在listboxdataGridViewcheckedlistbox中(对于某些删除或全部删除)
  3. 然后将它们存储在List<>中或文件* .txt
  4. 脚本删除它们,或使用C#(以编程方式删除它们)
  5. 我的问题/兴趣点是:

    a)是在搜索数据库字段时搜索更优化的文件(在搜索目录中的文件然后存储在数据库中之后),还是通过再次迭代/循环遍历目录? (首先想一想)在DB表中存储路径会有什么问题吗?

    b)在3.我不知道如何存储长路径..但​​我会弄清楚...有人可以告诉我长路径存储是否存在一些问题?

    c)我如何描绘删除过程?

    d)任何人都知道脚本,所以我可以删除* .txt文件吗?

    e)在4.将下一个代码足以以编程方式对它们进行del:“

    string[] filePaths = Directory.GetFiles(@"c:\MyDir\");
    foreach (string filePath in filePaths)
      File.Delete(filePath);
    

    其中路径来自DB ..

1 个答案:

答案 0 :(得分:1)

看起来你不需要数据库。执行搜索后,您已经知道要删除的文件名,这就是您所需要的。

不存在使用List<>存储长路径的问题。或文本文件。存储与短路径完全相同。

为什么需要描绘删除过程?有什么特别的东西,你不明白吗?删除过程基本上是一个API调用,它告诉文件系统它存储的文件不再存在。文件系统记下这一点并释放空间/不会在任何后续请求中显示此文件。 - 这是我拍照的方式。

是的,您可以根据列表<>删除它们或文本文件。

您提供的代码将删除c:\ MyDir \中的所有文件。如果这是您想要的所有文件,那么这就足够了(假设应用程序具有正确的权限,文件未被其他进程锁定)。

以下是一些有用的参考资料,可以回答您进一步的问题:

如何删除文件: http://msdn.microsoft.com/en-us/library/system.io.file.delete.aspx

如何写入文本文件 http://msdn.microsoft.com/en-us/library/vstudio/8bh11f1k.aspx

如何遍历数组 http://msdn.microsoft.com/en-us/library/5ts69ce3%28v=vs.90%29.aspx

如何遍历集合 http://msdn.microsoft.com/en-us/library/wzc4yayd%28v=vs.90%29.aspx

您可以从C#代码中删除文件,为此不需要cmd.exe。