2011-11-09 70 views
1
  • 將五個.txt文件從本地計算機上的PutFile()目錄上傳到另一臺PC(運行ftp服務器)。如何ftp正在使用的文件?

  • 上一個文本文件當前由本地機器上的進程打開(定期寫入),但我仍想發送它。

FindNextFile()得到這個文件,是有辦法

  1. 檢查,這是 「鎖定」 的文件(property檢查)?
    - >編輯PutFile失敗,GetLastError()0x32共享衝突。這現在知道它被鎖定了

  2. 解鎖它嗎?

  3. 或者如果我無法解鎖它,只需複製它?

謝謝。

(C或C++ - Windows XP中 - 的Visual Studio .NET 2003)

編輯

  • 該文件沒有被這個過程中產生的。
+1

正如你告訴你使用MFC,但標籤顯示其winapi ...我會建議你去與CreateFile功能。如果句柄有效,則表示文件未被鎖定。在C#中有一篇文章,但我認爲你也可以在這裏使用它http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/dead0507-06f5-43e0-9250-a78437956bc8/ 我m不知道將winapi與MFC的工作因爲我不知道它... – perilbrain

+1

他說mfc在哪裏? –

+0

謝謝。這是正確的,這是一個Windows控制檯應用程序。 –

回答

1

您可以使用卷影服務來訪問一個文件正在使用

utility可以讓你在使用的文件複製 - 還有的源代碼,所以你可以看到如何做到這一點你的代碼中

+0

謝謝。這是否意味着Windows不允許這樣做? –

+1

根據其他進程如何打開文件,可能會阻止您閱讀該文件。有一個操作系統功能可以在文件系統正在使用時複製文件系統,例如用於備份,稱爲VSS。您可以調用utlilty爲應用程序創建文件的臨時副本 - 或者挖掘源代碼並查看它們是如何執行的 –