1

我正在尝试将文本文件写入:C:\Test folder\output\,但没有放入C:\

IE

这就是我目前拥有的,目前有效,但C:\一开始就有。

StreamWriter sw = new StreamWriter(@"C:\Test folder\output\test.txt");

我真的很想将文件写入输出文件夹,但不必C:\在前面。

我尝试了以下方法,但我的程序只是挂起(不写出文件):

(@"\\Test folder\output\test.txt");

(@".\Test folder\output\test.txt");

("//Test folder//output//test.txt");

("./Test folder//output//test.txt");

无论如何我可以做到这一点吗?

谢谢。

4

4 回答 4

3

感谢您的帮助。

我的一位同事也参与进来并提供了帮助,但@Kami 也提供了很多帮助。

它现在正在工作,当我有:

string path = string.Concat(Environment.CurrentDirectory, @"\Output\test.txt");

正如他所说:“这CurrentDirectory是程序运行的地方。

于 2012-11-12T11:12:02.387 回答
2

我了解您希望将数据写入指定文件夹。第一种方法是在代码中或通过配置指定文件夹。

如果您需要写入特定驱动器或当前驱动器,您可以执行以下操作

string driveLetter = Path.GetPathRoot(Environment.CurrentDirectory);
string path = diveLetter + @"Test folder\output\test.txt";
StreamWriter sw = new StreamWriter(path);

如果目录需要相对于当前应用程序目录,则用户AppDomain.CurrentDomain.BaseDirectory获取当前目录并使用../组合导航到所需的文件夹。

于 2012-11-12T10:53:36.420 回答
2

一种常见的技术是使目录相对于您的 exe 的运行时目录,例如,一个子目录,如下所示:

string exeRuntimeDirectory = 
    System.IO.Path.GetDirectoryName(
        System.Reflection.Assembly.GetExecutingAssembly().Location);

string subDirectory = 
    System.IO.Path.Combine(exeRuntimeDirectory, "Output");
if (!System.IO.Directory.Exists(subDirectory))
{
    // Output directory does not exist, so create it.
    System.IO.Directory.CreateDirectory(subDirectory);
}

这意味着无论将 exe 安装到何处,它都会创建一个“输出”子目录,然后可以将文件写入该子目录。

它还具有将 exe 及其输出文件保存在一个位置的优点,而不是分散在各处。

于 2012-11-12T11:02:34.207 回答
2

您可以使用System.IO.Path.GetDirectoryName来获取正在运行的应用程序的目录,然后您可以将路径的其余部分添加到此目录中。

我没有清楚地从这个问题中得到你想要什么,希望这能得到它..

于 2012-11-12T11:03:58.623 回答