|
|
1
8
您可以在上传之前更改文件名,然后在上传完成后重命名。这样一来,它看起来像是在完成之前并不存在。 |
|
|
2
5
我见过的一种做法是传输两个文件,一个是实际文件,另一个是我们可以称之为.done文件的文件。理想的情况是,一旦你看到.done文件,你就知道应该完成第一个文件。 其他选项包括查看文件是否有修改,并等待一定时间不进行修改。当然,这并不是充分的证据。 编辑Kyle很好地指出,在.done文件中添加校验和和/或指示第一个文件的大小可以很好地防止边缘情况。 |
|
|
3
4
我一直是.filepart协议的忠实粉丝,所以无论你使用什么传输协议(ftp、ssh、rsync等),你都有相同的理解。 这不是对你问题的直接回答,但从长远来看,与其寻找仅支持ftp的解决方案,一个更通用的解决方案可能对你更好。 (.filepart:将文件test.txt重命名为test.txt.filepart,完成后将其重新命名为test.txt) |
|
|
4
3
使用文件夹观察器对内容进行索引怎么样?如果文件大小在5分钟内没有变化,你几乎可以保证上传已经完成。 超时可能与FTP服务器到的超时有关。 http://www.codeproject.com/KB/files/MonitorFolderActivity.aspx |
|
|
5
3
我一直使用校验和文件。因此,您发送了一个表示文件大小和校验和的校验和文件。当第一个文件中的校验和与文件系统上的实际校验和匹配时,您将知道文件已正确上传。 |
|
|
6
1
我过去使用的方法是这里其他一些回复的混合。 即,使用与预期扩展名不同的FTP文件(例如FILENAME.part),然后将其重命名为正确的扩展名,作为上传的最后一步。 在服务器上,使用FileSystemWatcher查找具有正确扩展名的新文件。 FSW在重命名文件之前不会看到该文件,重命名操作是原子性的,因此文件在重命名时将是完整且可用的。 重命名或移动文件当然取决于您对上传过程的控制。 如果你无法控制文件的上传方式,你将只能使用FSW来知道文件正在上传,然后监控它的大小——当它长时间保持不变时,你可以 假定 它是完整的。 |
|
|
7
0
您可能想看看System,而不是轮询。IO.FileSystemWatcher。 |
|
|
RoseTeq · 流转换为0字节[重复] 2 年前 |
|
|
Barta · 为什么它不更新ui然后运行代码wpf 2 年前 |
|
|
D C · 如何在没有jsch的情况下从SFTP客户端读取文件 3 年前 |
|
|
Farrukh · 无法使用编码“utf-8”解码数据 3 年前 |
|
|
Kate · 在FTP上创建与本地名称相同的文件名 13 年前 |
|
|
iordanis · Windows的替代FTP客户端[已关闭] 13 年前 |
|
|
Friend · Php正在获取目录列表,但如何获取最后修改的日期[重复] 13 年前 |
|
|
petko_stankoski · 修复新连接的超时问题 13 年前 |