C# 代码处理文件"解除锁定"

       cmd ="\"" + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "streams64.exe") + "\"" + " /accepteula -s -d \"D:\\XXX\"" + "&exit";
            using (Process p = new Process())
            {
                string cmdPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cmd.exe");
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.Arguments = "/c " + cmdPath;
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.Verb = "RunAs";
                p.Start();
                p.StandardInput.WriteLine(cmd);
                p.StandardInput.AutoFlush = true;
                output = p.StandardOutput.ReadToEnd();
                p.WaitForExit();//等待程序执行完,退出进程
                p.Close();
            }

-d 针对文件或文件夹执行

-s -d 可以递归执行文件夹下的子文件\子文件夹

/accepteula 添加这个是接受协议,不然会弹出协议接受窗口

参考内容:

https://bbs.csdn.net/topics/392176119?list=30947593

https://docs.microsoft.com/zh-cn/sysinternals/downloads/streams

posted @ 2020-11-30 14:52  苏秦与真相  阅读(377)  评论(0编辑  收藏  举报