Добрый день. Написал приложение-1 на C#, которое создает папку. Основное приложение-2 качает его, и закидывает в другую папку внутри себя, что-то вроде "firstApp\secondApp\приложение-1.exe", после чего приложение-2 запускает приложение-1, которое создает папку не в secondApp\firstApp\приложение-1-folder, а в secondApp\приложение-1-folder. При этом, когда вручную запускать приложение-2, оно работает как нужно и создает папку в secondApp\firstApp\приложение-1-folder. То есть при запуске приложения-1 из вне, оно создает директорию не внутри себя, а в корне каталога, из которого была запущена. Как решается данная проблема?
ZipFile.ExtractToDirectory(DownloadName, DownloadName.Remove(DownloadName.Length - 4));
Process.Start(DownloadName.Remove(DownloadName.Length - 4) + "\\" + DownloadName.Replace(".zip", ".exe"), "-sd");
Directory.CreateDirectory("data");
Необходимо указать рабочую директорию приложения, проще всего это сделать в свойствах ярлыка, который будет запускать ваше приложение. В свойствах назначенного задания, также присутствует аналогичная настройка. Внутри кода программ,это можно сделать так
string exeDir =Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Directory.SetCurrentDirectory(exeDir);
Путь папки приложения.
string path = Directory.GetCurrentDirectory();
string path = Application.StartupPath;
Вы не должны использовать относительные пути, если не хотите таких сюрпризов.
Дело в том, что относительный путь — это путь относительно текущего каталога, а не относительно положения программы на диске. (Нет, это не одно и то же.) Программа сама не контролирует стартовое значение текущего каталога, поэтому либо она должна в самом начале устанавливать его, либо просто всегда работать с полными путями.
Связанный вопрос: Как определяется каталог поиска файла?
О том, как получить каталог, в котором лежит приложение, здесь: Как задать относительный путь для создания файла в C#?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники