【问题标题】:FileSystemObject moves a file even when is being copied over FTPFileSystemObject 即使在通过 FTP 复制时也会移动文件
【发布时间】:2010-12-02 15:30:36
【问题描述】:

我有一个程序会定期检查新文件,然后对其进行处理。

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

这怎么可能?

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

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

【问题讨论】:

    标签: vbscript windows-server-2008-r2 filesystemobject


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我已经解决了试图打开文件进行写入的问题。但是很好奇为什么操作系统允许它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多