我的 .NET 应用程序更新位于域内共享文件夹中的某个 .xls 文件。使用 VB.NET,我如何检查该文件是否被其他用户使用并取消共享/关闭它,以便我的代码可以正确更新文件?注意:.exe 文件(我的应用程序)将在共享文件夹所在的服务器中执行。
问问题
779 次
1 回答
2
Windows 和 NTFS 旨在防止这种情况。除非你:
- 获取打开 .xls 文件的 Excel 应用程序以将其关闭
- 假设 Excel 文件由客户端 PC 打开,则关闭服务器的网络连接——这是一个非常不受欢迎的步骤
- 发现正在运行 Excel.exe 实例的 PC,并使用 Windows
Taskkill
命令行命令杀死机器上的所有 Excel.exe 实例(因为您不一定知道打开了哪个实例)——这是另一个不受欢迎的步骤 - 看看这个答案,但这使用了第三方实用程序,并没有解释这些实用程序如何做他们所做的事情,尽管你可能能够做到
Process.Start
。
您只是无法让 Windows/NTFS 释放文件锁定。
我不确定是否可以使用 xls(而不是 xls_)的一种可能替代方法是使文件shared,尽管这有一些限制。
于 2013-10-02T23:05:45.027 回答