【问题标题】:How to specify a generic path?如何指定通用路径?
【发布时间】:2011-12-05 22:35:41
【问题描述】:

我想知道写入磁盘时是否可以指定通用路径?

假设我有这条路径:C:\Program Files\Microsoft.NET

写入该目的地时如何使路径通用?

并非所有本地路径都设置为c:\

我确实尝试过:..\Program Files\Microsoft.NET 但没有运气

更新:

我需要写到一个特定的位置/路径,但路径一直在变化......它不会总是写到Program Files\Microsoft.NET。下一次我需要写入磁盘可能是一个全新的目标路径,例如:c:\NewTestFolder\Test1 这就是为什么我需要一种“通用”方式来指定路径的 c:\ 部分。

【问题讨论】:

  • 您具体需要做什么?您是否必须读取或写入特定位置或其他什么?
  • “通用”是什么意思?
  • “通用路径”是什么意思?如果您想要应用程序所在磁盘的根目录,则类似于 linux:\Program Files\Microsoft.NET - 但使用环境变量会好得多。
  • 你的意思是程序文件夹(这是一个特殊的已知文件夹,并且有一个枚举)或更通用的东西(这是不可能的)。
  • 再一次 - “通用”是什么意思?你从哪里得到“C:”(或其他)?

标签: c# .net path


【解决方案1】:

您可以使用 Environment 类。

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);

通过该调用,您可以获得程序文件目录的路径。

【讨论】:

    【解决方案2】:

    您可以使用环境变量。 %ProgramFiles% 在 C:\Program Files

    中生成您的示例

    要使用环境变量,您可以使用 Environment.ExpandEnvironmentVariables 方法:

    Environment.ExpandEnvironmentVariables("%ProgramFiles%");
    

    【讨论】:

      【解决方案3】:

      使用Environment类,但注意如果你使用的是Windows XP之后的Windows版本,则不能在指定路径下读写,除非你有管理员权限。

      问候。

      【讨论】:

        【解决方案4】:
        string tempPath = "..\\Program Files\\Microsoft.NET";
        string outputPath = System.IO.Path.GetFullPath(tempPath);
        

        结果将是C:\\Program Files\\Microsoft.NET

        【讨论】:

        • 但这会生成一个相对于当前运行程序的文件夹的父文件夹的路径!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多