我正在尝试使用streamwriter在my documents文件夹中创建一个文本文件,但是当我实际使用完整路径时,它认为我正在使用相对路径。
我正在尝试使用此路径创建文件:“%HOMEPATH%/ My Documents /”,但它将此视为相对路径。
任何帮助都将不胜感激,谢谢。
答案 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%来解决问题