展开“我的文档”环境变量我知道我可以这样读取环境变量:但是,如果我能做这样的事情,那对我真的很有帮助:Environment.ExpandEnvironmentVariables(@"%MyDocuments%Foo");是否有等于SpecialFolder.MyDocuments的环境变量?我也尝试过类似的方法,但这并没有达到预期的结果:Environment.ExpandEnvironmentVariables(@"%USERPROFILE%MyDocumentsFoo");这样我得到类似@"C:Users\MyDocumentsFoo"的东西,但我需要的是@"\someservernameusers$\MyDocumentsFoo"。编辑:我的目标不是硬编码环境变量或之后的部分。还有其他建议吗?MyDocuments特殊文件夹没有环境变量(SpecialFolder枚举的大多数成员也是如此)。查看此代码段,它可能正是您要搜索的内容。它允许你做这样的事情:stringfullPath=SpecialFolder.ExpandVariables(@"%MyDocuments%Foo");注意:SpecialFolder.ExpandVariables是上述代码段中引入的辅助类的静态方法。是否有等于SpecialFolder.MyDocuments的环境变量?简短的回答:没有。长答案:仍然没有。您可以在命令提示符中键入“set”以查看所有当前环境变量。我在我的个人资料中找不到任何我的文档文件夹(在WinXP和Win7上试过)。此外,扩展“%USERPROFILE%MyDocuments”是不正确的,因为用户的Documents文件夹可能在其他任何地方(例如,在我的家用电脑上,我总是将我的D:Documents更改为D:Documents)。如果您确实需要使用环境变量,一种解决方案可能是自己设置变量://thisenvironmentvariableiscreatedforthecurrentprocessonlystringdocuments=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);Environment.SetEnvironmentVariable("MYDOCUMENTS",文件);另一种解决方案是在路径中使用“假”环境变量并自行扩展它,例如:stringpath="%MYDOCUMENTS%\Foo";//从配置中读取//展开真正的env.varsstringexpandedPath1=Environment.ExpandEnvironmentVariables(path);//扩展我们的“假”环境。varstringdocuments=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);stringexpandedPath2=path.Replace("%MYDOCUMENTS%",documents);不确定是否有好的方法可以做到这一点,而不是尝试进行环境扩展来获取路径为什么不使用Path.CombineAPI?Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),"Foo");你到底想做什么?有什么理由不能只使用Path.Combine吗?字符串文档=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);stringfoo=Path.Combine(docs,"Foo");您可以使用Environment.GetEnvironmentVariable方法扩展环境变量鉴于您的评论,我建议您将路径分成两个单独的配置设置以便于扩展:stringvariablePath="%appdata%".Trim('%');//从一些配置设置字符串中读取appdataPath=Environment.GetEnvironmentVariable(variablePath);字符串subdir="foo";//一些其他配置设置stringmyDir=Path.Combine(appdataPath,subdir);不,它不存在。最简单的检查方法是从命令行运行“set”并亲自查看。以上就是C#学习教程:展开“我的文档”环境变量分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—开始->运行->cmdsetset|findstr/idocuments本文收集自网络,不代表一个位置。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
