我正在写一个软件来维护Git存储库中的文件。
我编写的一个可执行文件有一个简单的用途:删除与该软件有关的所有内容。它是在单独的,完全不相关的Windows文件夹中提供给用户的。
它需要删除的文件夹之一包含一个Git存储库,即它包含一个隐藏的.git文件夹
现在这是我遇到的问题。当我在PC本身上查看文件系统时,我可以找到该文件夹,单击该文件夹,将其删除....,它消失了。没问题。
因此,我尝试通过在该文件夹中调用 System.IO.Directory.Delete 来在组装中执行相同的操作。
这就是我所发现的:
有什么用!?!?为什么System.IO.Directory.Delete与我通过Windows资源管理器进入并手动删除文件夹的功能完全不同?
我尝试了很多事情。例如,我尝试获取目录中的所有文件并将其所有属性设置为“普通”,并尝试通过所有文件夹并将其属性设置为“目录而不隐藏”。仍然没有喜悦。我什至尝试使用 Process.Start 来运行 RMDIR文件夹/ S / Q -可以从.bat文件完美运行-但会发生同样的事情。
我确实安装了TortoiseGit及其所有依赖项,以防万一.....并且该文件夹上确实带有绿色的“ Tick”(勾号)以指示其内容是最新的。
所以我的问题是: 有什么方法可以通过VB.NET成功删除包含Git存储库的文件夹?
答案 0 :(得分:0)
我终于找到了这个神秘的谜底。
罪魁祸首是TortoiseGit
当我在删除文件夹之前杀死了 TGitCache.exe 进程时,一切正常。
去吧。