【问题标题】:Using text files in Visual Studio Project在 Visual Studio 项目中使用文本文件
【发布时间】:2012-04-27 13:46:32
【问题描述】:

我正在 VS2010 中制作控制台程序。解决方案资源管理器中列出的结构是 Project 文件、Properties 文件夹、References 和 Program.cs。

我想使用文本文件进行读/写。将此文件添加到项目中的正确方法是什么?如果我只是做StreamWriter sw = new StreamWriter("maze.txt"),那么它将在输出文件夹(bin/debug 或 bin/release)中创建文件。但它不会显示在解决方案资源管理器中。

现在,如果我右键单击解决方案资源管理器并添加新项目,我可以在根项目文件夹(与 Program.cs 相同的级别)中创建一个文本文件。这将显示在解决方案资源管理器中。

我有办法访问这个新创建的文件吗?除了通过指定两个父母的路径来做StreamWriter sw = new StreamWriter("../../maze.txt")之类的事情吗?

我应该如何在 Visual Studio 控制台应用程序中管理外部文件?在 WinForms 应用程序中,有一个资源文件夹,我可以在其中添加这些东西和一个 Resources.resx 文件来管理它。我可以通过Properties.Resources.someres 访问它。

【问题讨论】:

    标签: c# visual-studio-2010 project-management


    【解决方案1】:

    如果您想在设计时创建一个文件并将其包含在您的 bin 文件夹中,请添加文本文件,转到属性,然后为复制属性选择“始终复制”或“如果更新则复制”。

    请注意,这会将文件从项目复制到 bin 文件夹,但调试时 bin 文件夹中的更改不会复制到项目本身。我怀疑您是否希望程序与项目本身中的文件版本进行交互。如果您这样做,那么任何时候您在 VS 之外运行程序(即当您将其复制到实际用户的机器时)它都将无法工作。

    【讨论】:

    • 好吧,我知道我可以将文件复制到 bin 文件夹,但我只是想知道我是否应该像 StreamWriter("../../maze.txt") 这样访问文本文件,或者是否有更简化的方式,例如StreamWriter(Properties.Resources.maze) 文件实际上是项目的一部分。
    • 不,您根本不应该在程序运行时访问实际上是项目一部分的文件。程序本身应该只修改 bin/debug 文件夹中的文件副本。
    【解决方案2】:

    至于您的资源问题,您仍然可以使用资源。只需右键单击并“添加”->“新建项目”(也称为键盘快捷键 Ctrl+Shift+A),然后选择“资源文件”。你也可以set the text file to be an Embedded Resource。 MSDN 在他们的Managing Application Resources page 上有很多关于使用资源的信息。

    【讨论】:

      【解决方案3】:

      您仍然可以将资源嵌入到控制台应用程序中。我已经在快速应用程序中使用了这种技术,因此我们不需要安装程序或部署诸如此类文件之类的依赖项。这个question 讨论了一个类似的话题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-28
        • 2019-02-09
        • 1970-01-01
        相关资源
        最近更新 更多