.NET 3.x Обойти файлы с защитой и настроить кодировку - C#

Узнай цену своей работы

Формулировка задачи:

Объединяю два вопроса в один, потому что они связаны между собой! Я делаю программу, которая будет открывать cmd, проверять пинг локальной сети и записывать его в файл .txt .
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);
Далее программа должна открыть для пользователя этот файл, в чем возникает сразу 2 проблемы: 1) Поиск затрагивает защищенные директории, которые отказывают в доступе. Происходит вызов UnauthorizedAccessException. Я не хочу бороться с защитой, надо просто обойти её. Как это сделать? 2) После открытия txt файла с логами процесса, я получаю карлючки. Как настроить нужную кодировку для текста из cmd? Пример кода:
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();
                    }
3) И правильно ли я понимаю, SearchOption.AllDirectories выполняет поиск полностью по всему диску C:\, даже в самом низу? Например, C:\Documents and Settings\Buddy\Рабочий стол\Work\Others\Screenshots

Решение задачи: «.NET 3.x Обойти файлы с защитой и настроить кодировку»

textual
Листинг программы
ping.StandardOutput.BaseStream.CopyTo(tempFileStream);

Оцени полезность:

9   голосов , оценка 4 из 5