我使用 Google Chrome 下载了一个文件。现在我想知道它什么时候下载完成。可能通过外部应用程序(或命令行)。我有一种直接的方法。但它存在一些问题。
如果您有校验和以及文件名(以某种方式),我可以运行相同的 powershell 程序:
$ Get-FileHash ~/Downloads/foo.img
问题是,有些网络服务器不直接提供文件名,或者根本不提供文件名。此外,如果文件名不能直接访问,并且其名称很长,以至于在 chrome 的下载栏中显示为截断,则显然有可能假设错误的(完整)文件名。
此外,我们无法知道下载的状态。特别是当下载中断时。我希望有一些解决方法可以解决这个问题。
答案1
如果下载速度很慢,您可以运行以下 bash 脚本:
#!/bin/bash
file=$1
# echo "File: $file"
while [ 1 ];
do
if test -e "$file"; then
break;
fi
sleep 5
done
只需将尚未存在的(YTE)文件的位置作为参数传递给脚本。
要确定 YTE 文件名,只需访问 Google Chrome 的下载页面。
YTE 文件将位于文件系统中用户的相应文件夹中。此代码可通过基于 cygwin 的 bash shell 或 powershell 在 Windows 10 机器(或更早版本)上进行适当调整。
这种方法不会通知您由于网络错误导致的下载失败。
例如
./check-file.sh ~/Downloads/foo.zip && echo "done"