#c# #visual-studio-2019 #system.io.file
Вопрос:
Я создал программу, в которой требуется почта для запуска сканирования элементов на ПК, таких как имя процессора, скорость, оперативная память, браузер по умолчанию и т. Д.
Проблема в том, что при моей локальной отладке программа работает нормально, поэтому я создал установочный файл с выходным проектом, но при его запуске он выдает мне ошибку разрешения, единственный способ избежать этого-запустить программу от имени администратора, но в другой настройке, которую я сделал, никогда не выдавайте мне эту ошибку.
Это мой метод:
// Creates the Json to save usermail
public string createMailPropertie(string newEmail)
{
string newRoute = "";
try
{
var jsonObject = new JObject();
jsonObject.Add("userEmail", newEmail);
var json = JsonConvert.SerializeObject(jsonObject);
File.WriteAllText(Directory.GetCurrentDirectory() @"/userMailPropertie.json", jsonObject.ToString());
// write JSON directly to a file
using (StreamWriter file = File.CreateText(Directory.GetCurrentDirectory() @"/userMailPropertie.json"))
using (JsonTextWriter writer = new JsonTextWriter(file))
{
jsonObject.WriteTo(writer);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return newRoute;
}
Я хочу знать, есть ли другой способ сделать его чище и функциональнее.
Комментарии:
1. Запись в текущий каталог, скорее всего, приведет к возникновению вашей ошибки (вы должны указать, где произошла ошибка в вашем вопросе). Если вы развернете это в одной из папок «Программные файлы», у вашего приложения не будет разрешения на запись туда. Вероятно, вам следует писать в одно из пользовательских местоположений данных в перечислении специальных папок ( docs.microsoft.com/en-us/dotnet/api/… )