2015-05-19 3 views
-1

Как мы можем получить файл в другой папке консольного приложения?Относительный путь приложения консоли .NET

У меня есть файл изображения в папке относительно файла.cs, который пытается получить к нему доступ.

На данный момент я использую точный путь к файлу, но когда я отправляю это приложение клиенту, он может не работать, поскольку путь недействителен на машине клиента.

Вот код, я использую прямо сейчас:

workSheetIntroduction.Pictures.Add(5,1, @"C:\Users\Charu\Documents\Visual Studio 2013\Projects\AsmEpmReports\EmpReports.DomainLayer\Resources\Images\EpmLogo.png"); 
+1

Возможно, картинка должна быть [ресурсом] (https://msdn.microsoft.com/en-us/library/aa984367%28v=vs.71%29.aspx) в вашем проекте. – juharr

+0

Вы можете попробовать System.Reflection.Assembly.GetExecutingAssembly(). – Tzu

+0

Ну, вы не собираетесь отправлять свой каталог проектов. Используйте ресурс или просто скопируйте образ в каталог сборки, чтобы его было легко найти. –

ответ

0

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

Файлы затем сохраняются в дереве пользователя. Если вы не можете выполнить установку, вы можете проверить, существует ли каталог перед сохранением, а затем создать его. Вы также можете попросить приложение обратиться за каталогом, а затем создать его там, где пользователь этого желает. Или настройте его как конфигурационную переменную.

Много вариантов. Я бы выбрал первый, если это возможно, так как это предпочтительный метод Microsoft.

0

Как сказал Грегори, относительные пути были бы идеальными, но вы могли бы убедиться, что файл находится в относительном пути, выполняя FILE.Exists(<path>), где <path> - это относительный путь к файлу, который будет использоваться.

Для получения дополнительной информации об относительных абсолютных путях см. Naming Files, Paths, and Namespaces.

Смежные вопросы