0
我的.NET應用程序更新位於域內共享文件夾中的某個.xls文件。使用VB.NET,我如何檢查該文件是否被另一個用戶使用,並取消共享/關閉它,所以我的代碼可以正確更新文件? 注意:.Exe文件(我的應用程序)將在共享文件夾所在的服務器上執行。如何關閉/取消共享另一個用戶正在使用的文件?
我的.NET應用程序更新位於域內共享文件夾中的某個.xls文件。使用VB.NET,我如何檢查該文件是否被另一個用戶使用,並取消共享/關閉它,所以我的代碼可以正確更新文件? 注意:.Exe文件(我的應用程序)將在共享文件夾所在的服務器上執行。如何關閉/取消共享另一個用戶正在使用的文件?
Windows和NTFS旨在防止出現這種情況。除非你:
Taskkill
命令行命令在計算機上終止所有Excel.exe實例(因爲您不一定知道哪個實例已打開) - 另一個不受歡迎的步驟採取Process.Start
來執行它們。你只是不能得到Windows/NTFS釋放文件鎖定。
我不確定是否可以使用xls(與xls_相對)可能的替代方法是使文件shared,儘管這有一些限制。
好吧,我明白了,但是我必須說我是該文件的所有者,如果我在我的機器上執行該文件,應該有可能取消共享該文件...因爲它是完全一樣的,如果我只需手動取消共享該文件夾。我只想自動執行「不共享」過程,我知道如何使用.bat來做,但是有沒有辦法使用.NET?。 – phalanx
所有者與否,Windows不會輕易讓您刪除文件鎖定。如果您可以使用.bat文件解鎖文件,則可以使用.NET來運行bat文件。看看:http://stackoverflow.com/questions/2178872/run-batch-file-in-vb-net。 恐怕我還沒有聽說過任何人使用.NET直接解鎖文件,或者如果他們是,他們沒有分享他們的知識。 –
只是爲了好奇,有沒有辦法(通過代碼)來獲取運行EXCEL.EXE的PC?所以我可以在一個.bat中使用Windows Taskiller並將其命名爲 – phalanx