从项目中的文件夹中读取文件

SKJ*_*SKJ 60 c#

我有一个C#项目(Windows控制台应用程序).我在项目中创建了一个名为Data的文件夹.文件夹Data中有两个文本文件.

如何从"数据"文件夹中读取文本文件.我试过下面的事情.

string[] files = File.ReadAllLines(@"Data\Names.txt")
Run Code Online (Sandbox Code Playgroud)

找不到文件是错误的.

我已经检查了之前发布的一些Stackoverflow答案,但没有一个能为我工作.

我该怎么办?谢谢!

Mor*_*bia 90

下面的代码应该工作:

string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Data\Names.txt");
string[] files = File.ReadAllLines(path);
Run Code Online (Sandbox Code Playgroud)

  • 在Visual Studio中,标记文件然后将`Build Action`设置为`Content`,并将`Copy to Output Directory`设置为`Always always` (17认同)
  • 只需使用@"Data\Name.txt"应用@FlorianMoser表示法 (3认同)

Mas*_*uso 28

它取决于您的Data文件夹的位置

要获取.exe文件所在的目录:

AppDomain.CurrentDomain.BaseDirectory
Run Code Online (Sandbox Code Playgroud)

要获取当前目录:

Environment.CurrentDirectory
Run Code Online (Sandbox Code Playgroud)

然后你可以连接你的目录路径(@"\Data\Names.txt")


Uth*_*raj 12

如果您需要获取名为"Data"的文件夹中的所有文件,请按以下方式编写代码

string[] Documents = System.IO.Directory.GetFiles("../../Data/");
Run Code Online (Sandbox Code Playgroud)

现在,'Documents'包含'Data'文件夹'Data'中两个文本文件的完整对象名称数组.


Zig*_*ler 11

我有一个C#项目(Windows控制台应用程序).我在项目中创建了一个名为Images的文件夹.有一个名为MyIcon.ico的ico文件.我在Images文件夹中访问了MyIcon.ico,如下所示.

this.Icon = new Icon(@"../../Images/MyIcon.ico");
Run Code Online (Sandbox Code Playgroud)


小智 7

将Always始终复制到输出目录,然后尝试以下操作:

 Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
 String Root = Directory.GetCurrentDirectory();
Run Code Online (Sandbox Code Playgroud)