gpt4 book ai didi

c# - 将文件从一个目录复制到另一个目录的最快方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:13:18 25 4
gpt4 key购买 nike

我需要将文件从一个目录复制到另一个目录,这取决于 SQL 数据库表中文件名的存在。

为此,我使用以下代码:

using(SqlConnection connection = new SqlConnection("datasource or route"))
{

connection.Open();

using(SqlCommand cmd = new SqlCommand("SELECT idPic, namePicFile FROM DocPicFiles", connection))
using (SqlDataReader reader = cmd.ExecuteReader())
{

if (reader != null)
{
while (reader.Read())
{
//picList IS AN ARRAY THAT Contains All the files names in a directory
if (picList.Any(s => s.Contains(reader["namePicFile"].ToString())))
{
File.Copy("theFile in the Directory or array picList", "the destiny directory"+ ".jpg", false)
}
}
}
}
}

有什么方法可以在更短的时间内完成吗?执行此操作需要 1 小时,共 20.876 条记录。

最佳答案

File.Copy 尽可能快。您必须记住,您取决于硬件规定的文件传输速度,在 20000 个文件时,数据访问的延迟也会发挥作用。如果您在 HDD 上执行此操作,则在切换到 SSD 或其他一些快速介质后您会看到很大的改进。

仅对于这种情况,硬件很可能是您的瓶颈。

编辑:我认为长时间保持与数据库的连接是一种不好的做法。我建议您在一些内存缓存(数组、列表等)中获取所有需要的数据,然后在复制文件时遍历这些数据。数据库连接是一种宝贵的资源,在必须处理高并发(但不仅如此)的应用程序上,必须快速释放连接。

关于c# - 将文件从一个目录复制到另一个目录的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32236796/

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