Установить для приложения текущую директорию, отличную от директории приложения - C#

Узнай цену своей работы

Формулировка задачи:

Ситуация такая: в моем коде всё работает нормально. Следующий код:
string text = File.ReadAllText("code.in");
Считывает весь текст из из файла code.in в директории ...\MyProject\bin\Debug\ преобразуется в строку. Но увидел ровно такой же код у однокурсницы, но у неё происходит следующее: считывается файл code.in из директории ...\"HerProject"\ потом он копируется в ...\HerProject\bin\Debug\, далее естественно весь текст преобразуется в строку, записывается в text и код работает дальше. Нашел в интернете(видимо я не прав), что базовый путь можно получить из AppDomain.CurrentDomain.BaseDirectory, но эта функция выдает одно и то же т.е. в моём случае данная функция выдает ...\MyProject\bin\Debug\, в её случае ...\HerProject\bin\Debug\ Она сама не знает как это сделала. Объясните пожалуйста. P.S. кстати, если удалить файл code.in из ...\"HerProject"\ то происходит следующая ошибка: "не удалось скопировать файл "...\HerProject\code.in" - файл не найден." указывающая на что-то в Microsoft.Common.targets
<Copy
        SourceFiles = "@(_SourceItemsToCopyToOutputDirectoryAlways)"
        DestinationFiles = "@(_SourceItemsToCopyToOutputDirectoryAlways->'$(OutDir)%(TargetPath)')"
        OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
        Retries="$(CopyRetryCount)"
        RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
        UseHardlinksIfPossible="$(CreateHardLinksForAdditionalFilesIfPossible)"
            >

Решение задачи: «Установить для приложения текущую директорию, отличную от директории приложения»

textual
Листинг программы
string text = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "code.in"));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы