1

我有一个程序可以定期检查新文件,然后处理它们。

因为我想确保文件不会通过 FTP 复制,所以我先移动文件。
奇怪的是,在 Windows Server 2008 中,即使在被复制时,文件也会被移动,并且 FTP 复制操作会在新位置结束。

这怎么可能?

我已经在 vbs 文件中使用以下简单的代码行测试了这个问题:

dim fso
set fso = createobject("Scripting.FileSystemObject")
fso.MoveFile "bigfile.zip", "moved\bigfile.zip"
4

1 回答 1

1

好吧,当您移动文件(在同一个驱动器中)时,您只是告诉文件系统该文件可以在其他地方找到,您实际上并没有移动任何数据。所以我猜想移动会继续并告诉文件系统现在可以在哪里找到文件,但是 FTP 操作已经在硬盘驱动器上为实际数据分配了空间,所以文件已经被移动的事实,赢了不会以任何方式影响数据的存储位置,因此一切正常。

如果您将文件移动到另一个驱动器,我会假设某些地方会损坏。

如果您可以访问客户端,则可以让客户端稍后使用名称bigfile.zip.complete或类似名称编写另一个小文件,并且您的服务器应用程序可以在开始处理之前等待它,这样您就可以确定它已完成复制(如果连接在中途中断并且客户端停止上传文件,即使它没有完成,这也可以工作)。

或者,如果您无法访问客户端,也许您可​​以尝试查看文件的大小,如果它在这么多秒或几分钟内没有改变,那么它有望完成。

于 2010-12-04T20:44:38.593 回答