C#在解决方案中打开文件

6 c# file visual-studio-2008

我认为这个问题对你们大多数人来说可能是微不足道的,但不知何故我找不到答案......所以,我在这个解决方案中有一个Visual Studio 2008解决方案foo和一个项目栏.在我的酒吧项目中,我有一个名为baz的目录,它看起来像这样:

foo dir
 |
 +-> bar dir
      |
      +-> baz dir
           |
           +-> asd file
Run Code Online (Sandbox Code Playgroud)

现在我想在bar-project中打开我的"asd文件",但需要"asd文件"的确切路径,我该如何找到它?我试过简单的"baz\asd",但它不起作用.

谢谢!

Ĵ

use*_*116 10

您想bar在C#应用程序中在运行时打开-project中的文件吗?有几种方法可以实现这一点,我会给你最简单的.

  1. 转至属性asd解决方案资源管理器
  2. Build Action设置为Content
  3. 复制到输出目录设置为Copy always(或Copy if newer)

然后,您可以在C#中按如下方式引用该文件(假设您的程序不会将当前工作目录从可执行目录更改):

using (StreamReader reader = new StreamReader(@"baz\asd"))
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

其他方式涉及使用嵌入式资源,这不是最简洁的解决方案.


Eri*_* J. 3

如果您的意思是在运行时打开,则程序实际上在 bar\bin\debug (或 bar\bin\release)中运行,因此您需要考虑到这一点。

通常我会做类似的事情:

#if DEBUG
filename = @"..\..\baz\asd";
#else
filename = @"baz\asd";
#endif
Run Code Online (Sandbox Code Playgroud)