目前我正在浏览本地计算机上的文件,然后将其复制到我正在读取文件的另一个目录中。但复制过程没有完成(考虑到文件的大小)并且读取已经开始,所以它没有给我错误,每次我从读取文件中得到错误,它都在不同的行。
如何在文件复制完成后才开始阅读文件?
有没有办法验证复制的文件是否与原始文件大小相同?
答案 0 :(得分:1)
不要复制它。 重命名 ,当您下载并关闭它时。这是原子的。它出现在目标目录中的那一刻就完成了。问题不可能发生。故事结束。
它也是 O(1)而不是 O(N)。 Gazzilions的次数一样快。
答案 1 :(得分:0)
我过去这样做的方法是,编写复制文件的过程会写入“temp”文件,然后在文件写完文件后将文件移动到读取位置。
因此写入过程将写入info.txt.tmp。完成后,它会将文件重命名为info.txt。然后阅读过程只需要检查info.txt的存在 - 它知道如果它存在,它已被完全写入。
或者,您可以让写入进程将info.txt写入另一个目录,如果您不喜欢使用奇怪的文件扩展名,则将其移动到读取目录。