0

想问是否可以在 C# 中使用某种批处理进行高级搜索后删除某些文件。我相信我可以做类似的事情:

  1. 搜索文件
  2. 将文件存储在 a或 alistbox中(用于某些删除或全部删除)dataGridViewcheckedlistbox
  3. 之后将它们存储在 List<> 或文件 *.txt
  4. 删除它们的脚本,或使用 C#(以编程方式删除它们)

我的问题/兴趣点是:

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

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

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

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

e) 在 4. 下一个代码是否足以以编程方式删除它们":

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

路径取自 DB..

4

1 回答 1

1

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

不用担心使用 List<> 或文本文件存储长路径。它们的存储方式与短路径完全相同。

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

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

您提供的代码将删除 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。

于 2013-06-04T20:48:39.033 回答