Лучший способ сделать это может быть.
string cmd = string.Format(" /C ATTRIB -R \"{0}\\*.*\" /S /D", binPath);
CallCommandlineApp("cmd.exe", cmd);
private static bool CallCommandlineApp(string progPath, string arguments)
{
var info = new ProcessStartInfo()
{
UseShellExecute = false,
RedirectStandardOutput = true,
FileName = progPath,
Arguments = arguments
};
var proc = new Process()
{
StartInfo = info
};
proc.Start();
using (StreamReader stReader = proc.StandardOutput)
{
string output = stReader.ReadToEnd();
Console.WriteLine(output);
}
// TODO: Do something with standard error.
proc.WaitForExit();
return (proc.ExitCode == 0) ? true : false;
}
Я столкнулся с такой странной проблемой, как желание очистить флаг чтения / записи каталога и любых вложенных файлов / каталогов, которые у него могут быть.И использование цикла foreach звучит как дополнительная работа, когда функция командной строки Attrib работает просто отлично и почти мгновенно.