2016-02-29 5 views
0

В Visual Studio у меня есть файл, к которому я хотел бы получить доступ в одном из моих классов. Этот проект идет на контроль источника, поэтому я хотел бы использовать относительный путь, указывающий на то, где он находится внутри проекта. Я попытался следующие, всегда возвращает DirectoryNotFoundException:Доступ к файлу, хранящемуся в папке проекта в Visual Studio

filePPT = new PowerPointFile("~/IO/ExportTools/Template.pptx"); 

И

filePPT = new PowerPointFile("~\\IO\\ExportTools\\Template.pptx"); 

местоположении моего файла в следующей структуре:

enter image description here

Как я могу получить доступ к файлу в Visual Studio с помощью относительного пути?

+0

Did вы хотите скопировать файл при развертывании? – Gusman

+0

Для файла .pptx измените свойство в соответствии с данным, Build Action: Content and Copy Вывести каталог: Копировать всегда. Это решит вашу проблему. И затем используйте System.Reflection.Assembly.GetExecutingAssembly(). Место для получения Пути выполнения и укажите путь к вашему файлу pptx. –

ответ

1

Установить «CopyToOutputDir» Свойство файла, «Копировать, если новее», так что она будет скопирована в выходную папку и чем создать путь относительно запуска Пути применения ака

filePPT = new PowerPointFile(Path.Combine(Application.StartupPath, "IO/ExportTools/Template.pptx")); 
+0

Наверное, отсутствует что-то супер простое здесь, но я получаю сообщение об ошибке в приложении, он говорит: «Имя приложения не существует в текущем контенте» – Novastorm

+0

Это класс приложения в пространстве имен System.Windows.Forms. Если у вас другой тип проекта, возьмите соответствующий класс этой техники. System.Reflection.Assembly.GetExecutingAssembly(). Расположение, как предлагает DynamicVariable, должно работать практически в любом типе проекта рабочего стола. – Ralf