【问题标题】:Get files from custom folder inside C# project从 C# 项目中的自定义文件夹获取文件
【发布时间】:2011-09-11 18:26:02
【问题描述】:

第一次海报(和新手)。

我创建了一个 C# winform 应用程序。 我添加了一个“文档”文件夹,其中添加了 5 个 PDF 文件。

在我的 Form1 中,我添加了一个按钮,并且在按钮单击事件中,我试图从该“文档”文件夹中获取文件。

我搜索了一下,发现了这样的东西:

string[] arr = Directory.GetFiles(string path);

但我不想“硬编码”我的“文档”文件夹的路径。 我想知道是否有办法(更动态)来获取我的“文档”文件夹的路径。

我还发现了这些:

string path1 = Path.GetDirectoryName(Application.ExecutablePath);
string path2 = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

但他们总是把我带到我的 \bin\Debug 文件夹。

我会尽我所能! 谢谢!

【问题讨论】:

  • 您的Documents 文件夹可以在任何地方,还是您的意思是Windows 中的“我的文档”文件夹?
  • 我的错……我能理解这种困惑!我的“文档”文件夹不是 Windows 内置的“我的文档”文件夹……也许我应该将其命名为其他名称以避免混淆(现在和以后)。我几乎做了右键单击项目并选择添加->新文件夹并将其命名为“文档”
  • 没问题,至少你解决了:)

标签: c# winforms directory


【解决方案1】:

你的意思是Environment.SpecialFolder枚举?

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

还是我误读了问题?

编辑

我想我确实看错了,我很抱歉。试试这个:

string documents = Path.Combine(
                     Path.GetDirectoryName(Application.ExecutablePath),
                     "Documents"
                   );

这也是假设您将“文档”文件夹中的项目作为资源包含在内,以便可执行文件能够看到它们。

【讨论】:

  • 我认为他将“文档”文件夹添加到了他的 VS 项目中。
  • @Till:事实上你可能是正确的。在这种情况下,它应该是来自程序集目录和“文档”的简单 Path.Combine
  • 这里是我的错……因为我不应该将我的文档命名为“文档”,这会导致与内置的 Windows 文件夹“我的文档”混淆。顺便说一句,你给我的这个信息仍然很棒,因为我不知道能够访问这样的“特殊”文件夹......所以我想无论如何都值得在这里发布:-)
  • @Zypto:尝试下半部分(使用Path.Combine),看看是否适合你。此外,由于您正在调试,您将始终(除非更改输出路径)以bin\debug 结尾。如果您制作安装程序,它也会指向安装位置(但请记住,您可能需要绕过 UAC,并且需要一个清单文件)。
  • 哦……好的,我现在明白了!我必须更改“文档”文件夹中每个 PDF 文件的“复制到输出目录”,这样当我构建项目时,该文件夹就会出现在那里!太好了 :-) 感谢您的帮助!
【解决方案2】:

您要么必须告诉 Visual Studio 将文件复制到输出,要么我可能会这样做,让它们驻留在 %APPDATA%

【讨论】:

  • 是的,没错,我刚刚发现了 Copy to Output Directory :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
相关资源
最近更新 更多