Проблема с .Net в Windows: Environment.SpecialFolder.ApplicationDataC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с .Net в Windows: Environment.SpecialFolder.ApplicationData

Сообщение Anonymous »

Я разрабатываю приложение для Windows с использованием C#/.Net, которое записывает файлы журналов в
подпапку в папке AppData.
Во время разработки на моем локальном компьютере все все в порядке, файлы журналов хранятся в моей папке AppData

Код: Выделить всё

C:\Users\\AppData\Roaming\MyProgram\Logs
Однако, когда я развертываю приложение с помощью msix и устанавливаю его на другой компьютер, папка AppData (иногда) перемещается:

Код: Выделить всё

C:\Users\\AppData\Roaming\Local\Packages\
\LocalCache\MyProgram\Logs
Запись файлов журналов по-прежнему работает нормально.
Теперь я хочу создать команду, которая позволит пользователю открыть папку с файлами журналов в Windows-Проводник для удобства. Я написал следующий код:

Код: Выделить всё

string logPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"MyProgramm",
"Logs");

var logDir = new DirectoryInfo(logPath);
if (logDir.Exists) {
Debug.WriteLine($"Folder = '{logDir.FullName}'");
Process.Start(new ProcessStartInfo(logDir.FullName) {
UseShellExecute = true
});
}
Это отлично работает во время разработки, но не после развертывания.
Условие if(logDir.Exists) истинно, вывод отладки по-прежнему

Код: Выделить всё

Folder = 'C:\Users\\AppData\Roaming\MyProgram\Logs'
хотя приложение записывает в перемещенную папку AppData.
Однако при запуске внешнего процесса сообщается, что папка не существует (что верно, поскольку приложение использует перемещенный путь)
Мой вопрос: Есть ли способ получить настоящий путь на локальном жестком диске для Windows-Explorer открыть? Я пробовал PhysicalDirectoryInfo вместо DirectoryInfo, но безуспешно.
Любые предложения приветствуются!

Подробнее здесь: https://stackoverflow.com/questions/791 ... cationdata
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»