【问题标题】:Get Correct folder using c#使用 c# 获取正确的文件夹
【发布时间】:2011-11-12 19:30:49
【问题描述】:

所以,我正在构建一个新的 winfroms 并更新我的程序。

问题是,我没有安装任何东西。所以,当我给我的朋友我的程序时,它可以放在他们想要的任何地方。我怎么知道他们把它放在哪里了?

比如,假设我的程序名为“MyProg”。

假设我的朋友在 C:\programs\install\SayHello 中输入了“MyProg”。

我希望我的程序知道她在哪里并将其保存到 xml(每次她加载)。

所以,我知道如何使用这里的所有内容,我只需要知道如何获取我现在所在的文件夹路径。 (对于我的解释,foldepath = "C:\programs\install\SayHello.")

有人吗?

再次感谢, 阿隆。 :)

【问题讨论】:

标签: c# windows winforms


【解决方案1】:

来自How do I get the name of the current executable in C#?,查找当前正在运行的程序集的名称:

string file = object_of_type_in_application_assembly.GetType().Assembly.Location; string app = System.IO.Path.GetFileNameWithoutExtension(file);

so 找到当前正在运行的程序集的路径

string file = object_of_type_in_application_assembly.GetType().Assembly.Location; string path = System.IO.Path.GetDirectoryName(file);

应该做的工作。

Environment.CurrentDirectory 不一定会返回您想要的,因为可以从控制台的不同文件夹中运行程序。

【讨论】:

  • 或者更简单地说,使用 System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)。
【解决方案2】:

有几个选项,包括:

Application.ExecutablePath

搜索“get exe location c#”以获得更多变化。

【讨论】:

    【解决方案3】:

    Environment.CurrentDirectory 包含当前目录。

    【讨论】:

    • 这是快捷方式中使用的“Start In”路径,不一定是可执行文件所在的位置。
    【解决方案4】:
    Application.StartupPath
    

    在你的情况下也应该这样做。

    【讨论】:

    • 根据另一个使用程序集的答案,这可能会更好:System.Reflection.Assembly.GetExecutingAssembly().Location
    • 这是快捷方式中使用的“Start In”路径,不一定是可执行文件所在的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多