Есть мое приложение. которое работает, и вот в него добавлю механизм записи технической информации. Система win 10, лог пишется в папку c:WI\debug\ Проблема в том, что как работает сам модуль записи я вижу все прекрасно, но лог файл всегда остается пустой. Прочитав про эту ошибку я изменил права доступа на папку на запись и чтение, нахожусь под учеткой администратора и студию запускаю с правами администратора.Но увы ошибку не могу победить. (Так же возникает вопрос. если я запускаю приложение в студии оно тоже в режиме администратора или нет, так как студия сама запущена с правами администратора.) На всякий случай вот так я делаю эту запись.
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Reflection;
namespace Utils
{
public class DebugModule
{
private static bool needdebuginfo = false;
private static bool init = false;
public static bool NeedDebugInfo
{
get
{
if (!init)
{
needdebuginfo = System.IO.Directory.Exists("c:\\WIdebug\\debug\\") || System.IO.File.Exists("c:\\WI\\debug");
init = true;
}
return needdebuginfo;
}
set
{
needdebuginfo = value;
}
}
private static bool warnshowed=false;
public static void WriteDebugMessage(Func<string> GetMessage)
{
try
{
if (NeedDebugInfo)
{
if (!warnshowed)
{
warnshowed = true;
if (MessageBox.Show("Включен режим отладки, продолжить работу в этом режиме","Внимание!!!",MessageBoxButtons.OKCancel)==DialogResult.Cancel)
{
try {
System.IO.Directory.Delete("c:\\WI\\debug");
}
catch
{ }
try
{
System.IO.File.Delete("c:\\WI\\debug");
}
catch { }
needdebuginfo = false;
return;
}
}
System.IO.File.AppendAllText("c:\\WI\\debug"
, string.Format("NewLine {0}@#${1}@#${2}@#${3}@#${4}@#${5}@#${6}@#${7}@#${8}@#${9}@#${10}@#${11}\r\n"
, SystemTime.Current.ToString("dd.MM.yyyy HH:mm:ss.fffffff")
, GetMessage()
, Environment.MachineName
, Environment.UserDomainName
, Environment.UserName
, Environment.Version
, Environment.OSVersion
, Environment.Is64BitProcess
, Environment.Is64BitOperatingSystem
, Environment.CurrentDirectory
, Application.ProductVersion
, Assembly.GetExecutingAssembly().GetName().Version));
}
}
catch (Exception)
{
}
}
public static void WriteDebugMessage(string format,params object[] args)
{
WriteDebugMessage(() => { return string.Format(format, args); });
}
public static void WriteDebugMessage(string message)
{
WriteDebugMessage(() => { return message; });
}
public static void WriteDebugMessage(Exception e)
{
WriteDebugMessage("{0}",e);
}
}
}
Я подозреваю, что ошибка тут:
System.IO.Directory.Delete("c:\\WI\\debug");
Ниже через System.IO.File.AppendAllText
вы создаете файл c:\WI\debug
, а пытаетесь удалить директорию.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как отключить полосы прокрутки у FlowDocumentScrollViewer в WPF?
Есть двусвязный список который мне нужно отсортировать за O(n Log n) времяЯ бы хотел использовать merge sort, но я никак не могу сообразить, как это...
Использую библиотеку simple_html_domСчитываю csv файл