如何确定文件是否已完成下载

时间:2012-11-10 20:17:45

标签: c# .net windows

我每天下载GB的东西。我得到了所有强迫症,并在白天多次组织文件和文件夹,这让我疯狂。

因此,我计划编写一个应用程序来检测文件何时完成下载(到Windows下载文件夹),然后将其放入相关的分类文件夹中。

例如为: 我下载了一个应用程序当应用检测到文件已完成下载时,会将其置于子文件夹 Applciations 中。或者,当我完成下载文档后,文档将被放置在Downloads文件夹的 Documents 子文件夹中。

我遇到的问题是我不想这样做,除非有明确的方法来判断文件是否已经完成下载。

我想到的事情:

  1. 我考虑过在Downloads文件夹中实现FileSystemWatcher,当在那里创建一个新文件时,它会被添加到列表中。当FileSystemWatcher检测到文件大小已更改或已被修改时,它将启动计时器;此计时器的目的是在 x 秒数之后确定是否下载完成。它通过(错误地)假设如果文件的大小在指定的时间段内没有增加,则下载完成。
  2. 这就是我所能想到的。关于如何完成这种事情的任何想法?

1 个答案:

答案 0 :(得分:1)

访问文件时会被阻止。不是每个文件。但您可以检查该文件是否由其他应用程序打开。如果文件未打开 - 这应该告诉您,它已完全下载。