.NET 3.x Обойти файлы с защитой и настроить кодировку - C#
Формулировка задачи:
Объединяю два вопроса в один, потому что они связаны между собой!
Я делаю программу, которая будет открывать cmd, проверять пинг локальной сети и записывать его в файл .txt .
Далее программа должна открыть для пользователя этот файл, в чем возникает сразу 2 проблемы:
1) Поиск затрагивает защищенные директории, которые отказывают в доступе. Происходит вызов UnauthorizedAccessException. Я не хочу бороться с защитой, надо просто обойти её. Как это сделать?
2) После открытия txt файла с логами процесса, я получаю карлючки. Как настроить нужную кодировку для текста из cmd?
Пример кода:
3) И правильно ли я понимаю, SearchOption.AllDirectories выполняет поиск полностью по всему диску C:\, даже в самом низу? Например, C:\Documents and Settings\Buddy\Рабочий стол\Work\Others\Screenshots
cmdPath cp = new cmdPath(); // public struct cmdPath { public IPHostEntry local_ip; public string host; } ProcessStartInfo psi; cp.host = Dns.GetHostName(); cp.local_ip = Dns.GetHostEntry(cp.host); psi = new ProcessStartInfo("cmd", @"/c ping " + cp.local_ip + " > log cmd_log.txt"); psi.WindowStyle = ProcessWindowStyle.Normal; Process.Start(psi);
FileInfo[] fi = new DirectoryInfo(@"C:").GetFiles("cmd_log.txt", SearchOption.AllDirectories); do { Console.WriteLine("Searching."); Thread.Sleep(700); Console.Clear(); Console.WriteLine("Searching.."); Thread.Sleep(700); Console.Clear(); Console.WriteLine("Searching..."); Thread.Sleep(700); Console.Clear(); } while (fi.Count() < 1); if (fi.Count() >= 1) { Console.Clear(); Process.Start("cmd_log.txt", "notepad.exe"); } else { Console.Write("File cannot be found."); Thread.Sleep(2500); Console.Clear(); }
Решение задачи: «.NET 3.x Обойти файлы с защитой и настроить кодировку»
textual
Листинг программы
ping.StandardOutput.BaseStream.CopyTo(tempFileStream);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д