gpt4 book ai didi

c# - 获取数据表中不存在的所有文件

转载 作者:行者123 更新时间:2023-11-29 04:38:23 24 4
gpt4 key购买 nike

我有一个包含文件名列表的 MySQL 表。我想获取目录中所有文件的列表,前提是它们的名称不在表中。

我可以将数据库文件的列表放在数据表中并编写如下内容:

 string[] files = Directory.GetFiles(directory);
foreach (Datarow row in dataTable.Rows)
for (int i=0; i<files.Length; i++)
if (row[0].equals(files[i]) {
files[i].delete();
break;
}

上面的代码只是一个伪例子。我不能通过指定过滤器直接使用 Directory.GetFiles(directory) 以便不编写所有迭代吗?

最佳答案

请在下面找到代码片段

决定分步进行 - 拥有更易于维护的代码

void Main()
{
// given a list of files from db
DataTable dataTable = new DataTable("x");
dataTable.Columns.Add("file", typeof(string));
dataTable.Rows.Add("HaxLogs.txt");dataTable.Rows.Add("swapfile.sys");dataTable.Rows.Add("four.txt");
var directory = "c:\\";
var directoryFilesWithPaths = Directory.GetFiles(directory)
.Select( x=> new FileEntry { Path = x, FileName = Path.GetFileName(x)});

var directoryFiles = directoryFilesWithPaths.Select(x => x.FileName).ToList();
var filesList = (from DataRow dr in dataTable.Rows
select dr[0].ToString()).ToList();

var filesToProcess = directoryFiles.Except(filesList);
foreach (var file in filesToProcess)
{
// process file here

Console.WriteLine(file);
}

关于c# - 获取数据表中不存在的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35638153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com