Приложение C #, которое использует файл в исходном каталоге, делает ошибку при поиске файла, если он запущен с использованием других приложений - PullRequest
0 голосов
/ 28 сентября 2018

Я делаю приложение на C #, которое использует текстовый файл, расположенный в том же каталоге, что и приложение.когда я запускаю приложение двойным щелчком, оно запускается без проблем.Я хочу запустить его с помощью 4-й кнопки мыши, но при попытке приложение выдает ошибку при поиске текстового файла.Мое приложение - это простой лаунчер, и я хочу, чтобы оно работало так же просто, как нажатие кнопки мыши.Я определил путь к текстовому файлу, как показано ниже, и использовал public static, чтобы позволить другим формам использовать путь и найти файл тоже.

public static string list = System.IO.Directory.GetCurrentDirectory() + @"\list.txt";
Also tested: 
public static string list = Environment.CurrentDirectory+ @"\list.txt";

Приложение и текстовый файл расположены в >> bin \ Debug \

Ошибка: введите описание изображения здесь

Я использую приложение "Громкость 2" (от Александра Ирзы), чтобы определить функциональность 4-й и 5-й кнопок моей мыши. Я думаю, что этотак странно, потому что запуск моего приложения с использованием двойного щелчка не вызывает ошибок, и он может читать текстовый файл и записывать в него.Пожалуйста, помогите мне исправить это.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Не использовать GetCurrentDirectory;это может измениться при запуске вашей программы.

Если вы хотите найти каталог вашего исполняемого файла, используйте

var path = System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecutingAssembly().Location
);

Чтобы получить путь к файлу в том же каталоге, что и ваш исполняемый файл:

var filePath = System.IO.Path.Combine(path, "list.txt");
0 голосов
/ 28 сентября 2018

Как насчет чего-то вроде: string path = Application.ExecutablePath.Substring (0, Application.ExecutablePath.LastIndexOf ('\'));?

...