-2

我有一个将文件移动到文件夹中的 Perl 脚本。每次运行时,它都会检查文件夹中的文件名。但是如果我有一个更大的文件,当它检查文件名时它可能还没有准备好移动,它真的会搞砸一些东西。我想在循环结束时停下来检查移动是否完成,然后再继续。

4

2 回答 2

1

三种常用方法。

  1. 监控文件大小。假设在 X 秒内大小未更改时文件已完成。实施起来并不简单,而且容易出错。
  2. 移动文件完成上传标记文件。检查标记而不是原始文件是否存在。
  3. 使用不同的名称复制文件。传输完成后重命名。
于 2017-03-27T08:40:18.070 回答
0
sleep 1 while -e $original_filename;

有许多选项,甚至是无限的 while 选项,但是您需要格式化代码以确保在文件永远不存在时不会将脚本置于永久循环中。

于 2017-03-27T08:10:30.890 回答