我正在尝试使用 streamwriter 在我的文档文件夹中创建一个文本文件,但是当我实际使用完整路径时,它认为我使用的是相对路径。
我正在尝试使用以下路径创建文件:“%HOMEPATH%/My Documents/”,但它会将其视为相对路径。
任何帮助将不胜感激,谢谢。
我正在尝试使用 streamwriter 在我的文档文件夹中创建一个文本文件,但是当我实际使用完整路径时,它认为我使用的是相对路径。
我正在尝试使用以下路径创建文件:“%HOMEPATH%/My Documents/”,但它会将其视为相对路径。
任何帮助将不胜感激,谢谢。
您应该使用Environment.GetFolderPath
- 在这种情况下,这将完全避免您进行硬编码My Documents
:
string docs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
如果你想获得一个与之相关的目录名,你应该使用Path.Combine
:
string fooDocsDirectory = Path.Combine(docs, "foo");
在 .Net 中获取用户的 Documents 文件夹的正确方法是使用Environment.GetFolderPath()
并传入Environment.SpecialFolder.MyDocuments
.
使用System.Environment.SpecialFolder.MyDocuments来访问我的文档路径,而不是尝试使用系统变量。
我会使用一些 API 解析环境变量,然后将包含绝对路径(“C:.....”)的路径输入到StreamWriter
您可以按照 David Staratton 的建议使用Environment.SpecialFolder Enumeration 。
从命令提示符检查环境变量。我在我的机器上看到以下内容 -
家庭驱动器=C:
HOMEPATH=\用户\foo
因此,请尝试 %HOMEDRIVE%%HOMEPATH% 来解决您的问题