并行创建文件夹和文件
Creating folders and files in Parallel
我目前正在进行一个关于文档生成的项目。
给定 100.000 个客户,我需要为客户创建一个文件夹并在其中创建一个文件。
提前创建所有文件夹或创建文件和文件夹(如果不存在)是否更快,因为我在循环中进行。
我问的原因是因为我注意到复制文件夹或备份数据的程序通常倾向于先创建文件夹,然后再将内容复制到其中。
任何建议
我不是 100% 确定(我没有定时器比较设置),但我认为在第 1 次迭代中同时执行这两项操作会更快、更干净。假设您想验证没有 folder/file 创建失败,您可以创建目录并使用
验证它是否成功创建
var clientPath = @"C:\foo\bar";
if (Directory.Exists(clientPath)) continue;
if (Directory.CreateDirectory(clientPath).Exists)
然后您可以在继续下一个文件之前对文件执行相同的操作,如果没有,则记录它或正确处理它。
这样您就知道每个文件夹要么使用正确的文件创建,要么被记录下来,而且它也只会经历一次迭代,而不是两次创建文件夹然后创建文件。
这只是我对情况的看法
我目前正在进行一个关于文档生成的项目。 给定 100.000 个客户,我需要为客户创建一个文件夹并在其中创建一个文件。 提前创建所有文件夹或创建文件和文件夹(如果不存在)是否更快,因为我在循环中进行。 我问的原因是因为我注意到复制文件夹或备份数据的程序通常倾向于先创建文件夹,然后再将内容复制到其中。
任何建议
我不是 100% 确定(我没有定时器比较设置),但我认为在第 1 次迭代中同时执行这两项操作会更快、更干净。假设您想验证没有 folder/file 创建失败,您可以创建目录并使用
验证它是否成功创建var clientPath = @"C:\foo\bar";
if (Directory.Exists(clientPath)) continue;
if (Directory.CreateDirectory(clientPath).Exists)
然后您可以在继续下一个文件之前对文件执行相同的操作,如果没有,则记录它或正确处理它。
这样您就知道每个文件夹要么使用正确的文件创建,要么被记录下来,而且它也只会经历一次迭代,而不是两次创建文件夹然后创建文件。
这只是我对情况的看法