2017-02-10 8 views
0

Я хотел бы изменить содержимое файла, помещенного в папку проекта (в частности «Assets/recentChanges.txt») во время выполнения. Предположим, он содержит информацию о последних изменениях в приложении. Предполагается, что он должен быть прочитан и привязан к элементу управления текстовыми полями, который впоследствии может быть отредактирован разработчиками и сохранен обратно. Проблема с файлами содержимого заключается в том, что они скопированы для вывода каталогов, и поэтому я не редактирую исходный файл в папке «Активы», а тот, что находится в bin/Debug/Assets/folder. И Встраиваемый ресурс действие сборки не является вариантом, так как такие файлы не могут быть изменены.WPF Как изменить файл ресурсов/содержимого внутри папки проекта во время выполнения (НЕ в каталоге bin)? Внедрение раздела «Последние изменения»

Вопрос: как я могу изменить указанный .txt-файл в исходном каталоге root/Assets/recentChanges.txt во время выполнения? Все приведенные ниже инструкции указывают на похожую сборки-зависимый путь:

Environment.CurrentDirectory; 
Assembly.GetExecutingAssembly().Location; 

Или, другими словами, что было бы правильным подходом к реализации «Последние изменения» раздел со следующими условиями:

  • основанный на текстовом файле в исходном местоположении проекта
  • возможно изменить файл во время выполнения через UI
  • файл, скопированный в выходную папку и видимый пользователю (через текстовое поле) в опубликованной заявке

Я знаю, что это, вероятно, не идеальный подход, потому что информация о последних изменениях может быть собрана из базы данных или файл .txt может быть изменен вручную, а затем скопирован в выходные места ... но, тем не менее, я думаю проблема несколько запутанна, и я хотел бы помочь. Благодаря!

+2

Составленные и запущенным приложение ничего не говорят о каком-то «оригинальном» месте не знает. Это место имеет значение только для Visual Studio при создании приложения. Если вы хотите изменить файл в этой папке, вы должны указать ему абсолютный путь, то есть «c: \ your_project_folder \ file.txt». Невозможно узнать, откуда .exe, откуда он был скомпилирован. – mm8

+0

Честно говоря, если файл является только текстовым файлом, а не медиаресурсом WPF, например PNG, зачем использовать его как файл ресурсов? _ «Я хотел бы изменить содержимое файла ... в ** runtime ** ... Предполагается, что он должен быть прочитан и привязан к элементу управления текстовым полем, который позже может быть ** отредактирован ** ** разработчики ** и ** сохраненные назад ** «_ - Кроме того, почему гоблики - разработчики, изменяющие файл SDLC для созданной ими программы ** в созданной ими программе **? Ставка, которая не появится в Git. Используйте свойство SDLC! – MickyD

+0

Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что OP пытается что-то сделать против естественного порядка SDLC. – MickyD

ответ

0

Скомпилированное и запущенное приложение ничего не знает о каком-то «оригинальном» местоположении. Это место имеет значение только для Visual Studio при создании приложения.

Если вы хотите изменить файл в этой папке, вы должны указать абсолютный путь к нему, то есть «c:\your_project_folder\file.txt».

Исполняемый не может быть должен знать, откуда он был составлен