我需要删除包含只读文件的目录.哪种方法更好:
使用DirectoryInfo.Delete(),或,
ManagementObject.InvokeMethod("Delete")?
有了DirectoryInfo.Delete(),我必须手动关闭每个文件的只读属性,但ManagementObject.InvokeMethod("Delete")似乎不需要.有没有人比另一个人更优先?
示例代码(test.txt是只读的).
DirectoryInfo dir = new DirectoryInfo(@"C:\Users\David\Desktop\");
dir.CreateSubdirectory("Test");
DirectoryInfo test = new DirectoryInfo(@"C:\Users\David\Desktop\Test\");
File.Copy(@"C:\Users\David\Desktop\test.txt", @"C:\Users\David\Desktop\Test\test.txt");
File.SetAttributes(@"C:\Users\David\Desktop\Test\test.txt", FileAttributes.Archive);
test.Delete(true);
Run Code Online (Sandbox Code Playgroud)
DirectoryInfo dir = new DirectoryInfo(@"C:\Users\David\Desktop\");
dir.CreateSubdirectory("Test");
DirectoryInfo test = new DirectoryInfo(@"C:\Users\David\Desktop\Test\");
File.Copy(@"C:\Users\David\Desktop\test.txt", @"C:\Users\David\Desktop\Test\test.txt");
string folder = @"C:\Users\David\Desktop\Test";
string dirObject = "Win32_Directory.Name='" + folder + "'";
using (ManagementObject managementObject = new ManagementObject(dirObject))
{
managementObject.Get();
ManagementBaseObject outParams = managementObject.InvokeMethod("Delete", null,
null);
// ReturnValue should be 0, else failure
if (Convert.ToInt32(outParams.Properties["ReturnValue"].Value) != 0) …Run Code Online (Sandbox Code Playgroud) 我正在使用LibGit2Sharp将远程存储库克隆到 Windows 临时文件夹中。我的脚本完成后,我想清理一下。但是,我总是收到以下错误:
系统错误:拒绝访问路径“pack-efcef325f8dc897099271fd0f3db6cf4d9f12393.idx”。
pack-efcef325f8dc897099271fd0f3db6cf4d9f12393.idx文件在哪里$local_git_clone_path\objects\pack.
如何完全删除我使用 LibGit2Sharp 克隆的 git repo 的所有本地剩余物?