2011-05-04 63 views
2

我正在編寫一個在文件共享中生成一些報告的進程,其他用戶可以打開以供閱讀(例如,csv文件)。如果有一個報告打開(在Excel中),當我追加內容時,我收到一個錯誤「該進程無法訪問文件'[...]',因爲它正在被另一個進程使用」。如何強制寫入/刪除其他用戶遠程打開的文件?

作爲一種替代方案,我可以阻止其他用戶從輸出位置訪問這些報告,並在他們將訪問的目錄中安排副本,但該副本將具有相同的結果,因爲文件副本當他們在該目錄中打開文件時仍然不可能。

我無法關閉對該文件具有句柄的進程,因爲它在任何其他計算機上。該文件甚至不在運行該進程的計算機上,而是遠程文件共享。

這似乎是一種常見的情況,但我可以弄清楚如何管理文件複製/寫入的唯一方法是等到其他用戶關閉,這在我的情況下是不可接受的。

+0

一種選擇是安排副本,如果失敗,它們會重新計劃未來的時間。如果您的過程是長期存在的(例如,作爲服務運行),那麼您可能會在應用程序中保持打開文件,並強制Excel以只讀方式打開文件(我沒有真正測試過)。 – jdigital 2011-05-04 18:44:21

回答

0

可能不是一個選項,但您可以通過內部Web服務器提供報告嗎?這將防止可怕的「文件在使用」問題。