使用/不使用相对路径在C#中写入文件

时间:2012-08-09 21:39:43

标签: c# .net streamwriter

我目前正在尝试从命令行OutputPath

获取用户输入
 using (outfile = new StreamWriter(OutputPath))
 {
     outfile.Write(result);
 }

如果在c:\ windows \ system32

下给出或写入文件,则写入绝对路径

如何使其成为绝对路径或取决于当前目录。有没有办法从命令行获取当前工作目录,或者是否有更好的API可以解决它。

由于

3 个答案:

答案 0 :(得分:3)

使用Path.IsPathRooted确定输入是否为绝对输入,使用Environment.CurrentDirectory获取当前目录。有了这些信息,你应该全部准备好。

答案 1 :(得分:2)

您可以使用Directory.GetCurrentDirectory获取OS上的当前工作目录。

答案 2 :(得分:2)

C#确实知道如何根据当前目录使用相对路径。

如果您正在查看在C:\Windows\System32中创建的文件,则可能是您当前的工作目录。

快捷方式可以设置正在启动的程序的工作目录。打开/保存公共文件对话框也会弄乱当前的工作目录。

如果在不使用快捷方式的情况下启动应用程序,它将从父进程继承当前目录。 explorer.exe通常有C:\Windows\System32作为工作目录,这使得通过双击资源管理器中的图标启动的应用程序非常常见。