3

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

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

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

4

5 回答 5

10

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

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

如果你想获得一个与之相关的目录名,你应该使用Path.Combine

string fooDocsDirectory = Path.Combine(docs, "foo");
于 2012-08-22T21:00:08.813 回答
4

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

于 2012-08-22T20:59:57.097 回答
3

使用System.Environment.SpecialFolder.MyDocuments来访问我的文档路径,而不是尝试使用系统变量。

于 2012-08-22T20:59:53.400 回答
0

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

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

于 2012-08-22T21:00:50.703 回答
0

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

家庭驱动器=C:

HOMEPATH=\用户\foo

因此,请尝试 %HOMEDRIVE%%HOMEPATH% 来解决您的问题

于 2012-08-22T21:03:52.613 回答