2011-10-17 140 views
-1

我有一个c#服务器应用程序(WCF),我有一个文件保存在该服务器上,我想访问它,所以每个开发机器都可以使用它。c#WCF服务器应用程序 - 访问服务器上的文件相对

这是文件路径。

C:\用户\本\文档\ Visual Studio 2010的\项目\ myfile.xml中

,我想访问该文件从在项目:

C:\ Users \ ben \ Documents \ Visual Studio 2010 \ Projects \ MyProject

访问myfile.xml(相对)的最佳方式是什么?来自MyProject?

回答

1

那么,当你运行该项目,您的当前目录将是这样的:

C:\Users\ben\Documents\Visual Studio 2010\Projects\MyProject\MyProject\bin\Debug\

所以,你可能会想别的做一些事情。

将文件包含在项目中并转到文件的文件属性。对于Copy to Output Directory设置,请选择Copy Always。然后,该文件将在编译/构建时被复制到与EXE相同的目录中。这样你可以简单地通过它的文件名访问文件。

+0

谢谢,那么我如何访问它?我选择总是复制,比我尝试访问'MyProject/myfile.xml',但它找不到它。 – Shazam

+0

该文件不会被复制到您的项目文件夹,而是复制到项目的输出文件夹中。请参阅项目的“属性”和“构建”。在底部,您应该看到“输出路径”字段,可能带有目录名称“bin \”。这就是您将在项目建立之后找到该文件以及项目中的其他文件的位置。就像atornblad写道的一样。请注意他使用的路径的最后部分作为示例。 – Kjartan

+0

@Kjartan谢谢,我在bin目录中看到,但我无法访问它。我得到:系统找不到指定的文件,谢谢 – Shazam

0

从您的问题来看,您要访问您的项目位置,没有可执行文件和文件夹。要做到这一点尝试下面的代码:

 string AppPath = System.Environment.CommandLine; 
     int pos = AppPath.IndexOf("bin"); 
     AppPath = AppPath.Remove(pos); 
     AppPath += "myfile.xml"; 
+0

不,我只想托管一个静态文件并在服务器中访问它。我自己的配置文件,或者我想在我的项目中托管的其他任何文件,并相对访问它。谢谢 – Shazam

+0

@ user1,你可以通过追加文件名来访问文件,在这个例子中是xml文件。 – Simsons

相关问题