【问题标题】:how to find path to folder in c#? [duplicate]如何在c#中找到文件夹的路径? [复制]
【发布时间】:2014-07-31 06:52:47
【问题描述】:

我的主函数从命令行获取参数。 这个参数看起来像

--args ../../TempImages ../Resources.csproj etc.

如何从这个参数中找到 C# 中这个文件夹的完整路径? 喜欢

Users/%username%/Projects/Resource/Resource.csproj

我尝试使用路径、目录、环境类,但没有任何帮助 我正在使用 Xamarin,MacOSX 10.9

编辑: 忘了说,我不知道上面提供的完整路径。我的脚本在不同的系统上运行。因此,这些文件的完整路径可能不同。 莫里亚蒂的回答对我有帮助,但在这种情况下,它不起作用。

【问题讨论】:

  • Path.GetFullPath() 不能正确工作?在 Windows 上,它可以根据需要工作
  • Path.GetFullPath("../TempImages") 应该可以工作。如果没有,您可能应该向 Mono 开发人员发布错误。
  • stackoverflow.com/questions/867485/…你试过这样的事情吗?
  • @AlexVoskresenskiy 不,它没有。他返回给我最后一个目录名称/TempImages

标签: c# path xamarin directory


【解决方案1】:

幸运的是,Mono 在 System.IO 领域很好地采用了这一点。使用 Environment 类,您的方向是正确的,如下所示:

var path = Path.Combine (
    Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
    "Projects", 
    "Resource", 
    "Resource.csproj");

Environment.GetFolderPath 与 Environment.SpecialFolder.UserProfile 结合使用,可以获取 Windows 中称为 %USERPROFILE% 的内容。

其次,请注意我已将 /Projects/Resource/ 部分拆分为 Path.Combine 函数的单独参数。这是为了防止 WindowsMacLinux 文件操作出现问题,并让 mono 为您解决这个问题。

所以这适用于所有平台。享受吧!

更新:
对于认为这是错误答案的反对者:参考的重复文章中提到的建议在 Mac 或 Linux 上不起作用。这是因为“/paths/with/slahes”在非 Windows 环境中的 Mono/Xamarin 平台上的行为不同。这就是最初的问题。 #恕我直言

【讨论】:

  • 谢谢,这对我有帮助。 :)
猜你喜欢
  • 2010-12-25
  • 1970-01-01
  • 2011-06-01
  • 2021-04-24
  • 2018-11-15
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多