#c# #file-access
#c# #доступ к файлу
Вопрос:
У меня есть серверное приложение c # (WCF), и у меня есть файл, сохраненный на этом сервере, и я хочу получить к нему относительный доступ, чтобы каждая машина разработчика могла с ним работать.
это путь к файлу.
C:UsersbenDocumentsVisual Студия 2010Проекты myfile.xml
проект, из которого я хочу получить доступ к файлу, находится в:
C:UsersbenDocumentsVisual Studio 2010Проекты MyProject
каков наилучший способ доступа к myfile.xml (относительно)? из MyProject?
Ответ №1:
Ну, когда вы запускаете проект, ваш текущий каталог будет выглядеть примерно так:
C:UsersbenDocumentsVisual Studio 2010ProjectsMyProjectMyProjectbinDebug
Поэтому вы, вероятно, захотите сделать что-то еще.
Включите файл в проект и перейдите к свойствам файла для файла. Выберите Copy Always
для Copy to Output Directory
настройки. Затем файл будет скопирован в тот же каталог, что и EXE-файл при компиляции / сборке. Таким образом, вы можете получить доступ к файлу просто по его имени файла.
Комментарии:
1. спасибо, так как мне получить к нему доступ? Я выбрал всегда копировать, чем пытаюсь получить к нему доступ,
MyProject/myfile.xml
но он не может его найти.2. Файл будет скопирован не в папку вашего проекта, а в выходную папку проекта. См. раздел «Свойства» для проекта и «Сборка». Внизу вы должны увидеть поле «Путь вывода», вероятно, с именем каталога «bin «. Именно там вы найдете файл, а также другие файлы из вашего проекта после его сборки. Точно так, как пишет аторнблад; обратите внимание на последнюю часть пути, которую он использует в качестве примера.
3. @Kjartan Спасибо, я вижу в каталоге bin, но не могу получить к нему доступ. Я получаю: система не может найти указанный файл благодаря
4. Какое имя файла или Uri вы используете для открытия файла? Вы должны просто использовать что-то вроде
File.Open("myfile.xml")
Ответ №2:
Из вашего вопроса следует, что вы хотите получить доступ к местоположению вашего проекта без исполняемого файла и папки . Для этого попробуйте следующий код :
string AppPath = System.Environment.CommandLine;
int pos = AppPath.IndexOf("bin");
AppPath = AppPath.Remove(pos);
AppPath = "myfile.xml";
Комментарии:
1. нет, я просто хочу разместить статический файл и получить к нему доступ на сервере. мой собственный конфигурационный файл или любой другой файл, который я хочу разместить в своем проекте, и относительный доступ к нему. Спасибо
2. @user1, вы можете получить доступ к файлу, просто добавив имя файла, в данном случае XML-файла.