使用带有编写器C#的绝对路径

时间:2012-08-22 20:57:02

标签: c# streamwriter absolute-path

我正在尝试使用streamwriter在my documents文件夹中创建一个文本文件,但是当我实际使用完整路径时,它认为我正在使用相对路径。

我正在尝试使用此路径创建文件:“%HOMEPATH%/ My Documents /”,但它将此视为相对路径。

任何帮助都将不胜感激,谢谢。

5 个答案:

答案 0 :(得分:10)

您应该使用Environment.GetFolderPath - 在这种情况下,您可以避免使用My Documents进行硬编码:

string docs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

如果您想获得相对于此的目录名称,则应使用Path.Combine

string fooDocsDirectory = Path.Combine(docs, "foo");

答案 1 :(得分:4)

在.Net中获取用户“文档”文件夹的正确方法是使用Environment.GetFolderPath()并传入Environment.SpecialFolder.MyDocuments

答案 2 :(得分:3)

使用System.Environment.SpecialFolder.MyDocuments转到“我的文档”路径,而不是尝试使用系统变量。

答案 3 :(得分:0)

我会使用某个API解析环境变量,然后将包含绝对路径(“C:.....”)的路径输入到StreamWriter

您可以按照David Staratton的建议使用Environment.SpecialFolder Enumeration

答案 4 :(得分:0)

从命令提示符检查环境变量。我在我的机器上看到以下内容 -

HOMEDRIVE = C:

HOMEPATH = \用户\ FOO

请尝试使用%HOMEDRIVE %% HOMEPATH%来解决问题