我有一个ftp服务器充当公共文件存储库。 A-app可以将文件上传到服务器,B-app可以从服务器下载文件。如果B-app尝试下载A-app上传的文件,则文件长度不正确。 我想在上传完成之前锁定要上传的文件以阻止下载应用程序。有人可以帮帮我吗?
我正在开发.NetFramework。
答案 0 :(得分:0)
如果您正在编写这两个应用程序,则可以按照自己的方式进行。
您可以让上传应用程序将文件写入暂存区域,并仅将其移动到下载应用程序完成后访问的区域。您可以创建存储在文本文件中的锁定文件的共享表。您可以使用平台的文件锁定。
你可以随心所欲地做到 - 只需编写你想要的代码。
答案 1 :(得分:0)
在您的服务器中,上传文件时,您可以创建文件流:
FileStream localFile = new FileStream(Path, FileMode.Create, FileShare.None)
术语FileShare.None
会阻止其他任何内容(包括您的软件)打开文件,直到调用localFile.Close()
或localFile.Dispose()
为止。如果有人在文件关闭之前尝试下载该文件,则会抛出异常。