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

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

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

Объединяю два вопроса в один, потому что они связаны между собой! Я делаю программу, которая будет открывать cmd, проверять пинг локальной сети и записывать его в файл .txt .
Листинг программы
  1. cmdPath cp = new cmdPath(); // public struct cmdPath { public IPHostEntry local_ip; public string host; }
  2. ProcessStartInfo psi;
  3. cp.host = Dns.GetHostName();
  4. cp.local_ip = Dns.GetHostEntry(cp.host);
  5. psi = new ProcessStartInfo("cmd", @"/c ping " + cp.local_ip + " > log cmd_log.txt");
  6. psi.WindowStyle = ProcessWindowStyle.Normal;
  7. Process.Start(psi);
Далее программа должна открыть для пользователя этот файл, в чем возникает сразу 2 проблемы: 1) Поиск затрагивает защищенные директории, которые отказывают в доступе. Происходит вызов UnauthorizedAccessException. Я не хочу бороться с защитой, надо просто обойти её. Как это сделать? 2) После открытия txt файла с логами процесса, я получаю карлючки. Как настроить нужную кодировку для текста из cmd? Пример кода:
Листинг программы
  1. FileInfo[] fi = new DirectoryInfo(@"C:").GetFiles("cmd_log.txt", SearchOption.AllDirectories);
  2. do
  3. {
  4. Console.WriteLine("Searching.");
  5. Thread.Sleep(700);
  6. Console.Clear();
  7. Console.WriteLine("Searching..");
  8. Thread.Sleep(700);
  9. Console.Clear();
  10. Console.WriteLine("Searching...");
  11. Thread.Sleep(700);
  12. Console.Clear();
  13. } while (fi.Count() < 1);
  14. if (fi.Count() >= 1)
  15. {
  16. Console.Clear();
  17. Process.Start("cmd_log.txt", "notepad.exe");
  18. }
  19. else
  20. {
  21. Console.Write("File cannot be found.");
  22. Thread.Sleep(2500);
  23. Console.Clear();
  24. }
3) И правильно ли я понимаю, SearchOption.AllDirectories выполняет поиск полностью по всему диску C:\, даже в самом низу? Например, C:\Documents and Settings\Buddy\Рабочий стол\Work\Others\Screenshots

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

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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут