серверное приложение c # WCF — доступ к файлу на сервере относительно

#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-файла.