【发布时间】:2011-10-27 01:33:07
【问题描述】:
我有一个 ftp 服务器作为公共文件存储库。 A-app 可以上传文件到服务器,B-app 可以从服务器下载文件。如果 B-app 尝试下载 A-app 正在上传的文件,文件长度将不正确。 我想在上传完成之前锁定正在上传的文件以阻止下载应用程序。谁能帮帮我?
我正在 .NetFramework 上进行开发。
【问题讨论】:
我有一个 ftp 服务器作为公共文件存储库。 A-app 可以上传文件到服务器,B-app 可以从服务器下载文件。如果 B-app 尝试下载 A-app 正在上传的文件,文件长度将不正确。 我想在上传完成之前锁定正在上传的文件以阻止下载应用程序。谁能帮帮我?
我正在 .NetFramework 上进行开发。
【问题讨论】:
如果您同时编写这两个应用程序,您可以按照自己的意愿进行操作。
您可以让上传应用程序将文件写入暂存区域,并且仅在完成后将它们移动到下载应用程序访问的区域。您可以创建存储在文本文件中的锁定文件的共享表。您可以使用您平台的文件锁定。
您可以随心所欲地进行操作——只需编写您想要的代码。
【讨论】:
在您的服务器中,当上传文件时,您可以这样创建文件流:
FileStream localFile = new FileStream(Path, FileMode.Create, FileShare.None)
在调用localFile.Close() 或localFile.Dispose() 之前,术语FileShare.None 将阻止其他任何东西(包括您的软件)打开文件。如果有人在文件关闭之前尝试下载文件,则会引发异常。
【讨论】: