2016-02-29 50 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

做了应用程序的启动路径的路径您是否设置了在部署时复制文件? – Gusman

+0

对于.pptx文件,根据给定的生成操作更改属性:内容和复制到输出目录:始终复制。 这将解决您的问题。 然后使用System.Reflection.Assembly.GetExecutingAssembly()。获取执行路径的位置并将您的pptx文件的路径连接起来。 –

回答

1

设置文件的“CopyToOutputDir”属性设置为“复制,如果新”,因此,它被复制到输出文件夹,不是创造相对又名

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

可能在这里丢失了一些超级简单的东西,但是我在应用程序中收到错误消息,它说“名称应用程序在当前内容中不存在” – Novastorm

+0

这是System.Windows.Forms命名空间中的Application类。如果你有不同的项目类型,那么采取适当的技术类。 System.Reflection.Assembly.GetExecutingAssembly()。如DynamicVariable所示,位置几乎适用于任何桌面项目类型。 – Ralf

相关问题