【问题标题】:Getting CURRENT path to own executable (C++)获取拥有可执行文件的当前路径(C++)
【发布时间】:2018-10-17 20:29:19
【问题描述】:

StackOverflow 上的所有内容都说要使用一堆不同的方法来获取可执行文件的完整路径。问题是这些方法都没有获得可执行文件的路径。他们获得了可执行文件执行时所在的路径。如果你运行可执行文件然后移动它,你得到的路径总是你运行它的路径。我怎样才能找到它实际所在的路径?

【问题讨论】:

  • 为什么要移动可执行文件?你要解决的真正问题是什么?这是针对什么平台的,因为任何答案都必须是特定于平台的。
  • Linux?视窗?安卓? Mac OS-X?微软DOS?虚拟管理系统/CMS? PDP-10?您肯定不相信这是在世界上每个操作系统中都以相同的方式工作的东西,曾经存在过,或者永远存在?
  • 至少在 Windows 中,当有进程运行时,您不能移动可执行文件。
  • 我为什么要移动它?那完全没关系。 “真正”的问题是什么?!上面列出的那个......我不能说得更清楚了。对于那个讽刺评论的人,走开。你,傲慢,没有看到我显然是指Windows,没有帮助。对于那些说你不能在运行时移动可执行文件的人:是的,你可以。
  • 请修正问题的措辞。 Stack Overflow 不是一个可以容忍这种语言的论坛。由于您在提供给您时忽略了它,请立即使用tour。另请访问help center

标签: c++ winapi path


【解决方案1】:

GetFileInformationByHandleEx 与选项FileNameInfo 返回当前路径,无驱动器指示符,在当前设备上,当正在运行的可执行文件在该设备内移动时。要使用它,您显然需要在程序启动时打开文件以进行读取(在移动之前)。要在启动时获取可执行文件的路径,您可以使用GetModuleFileName

【讨论】:

    猜你喜欢
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 2012-05-10
    • 2018-03-26
    • 2011-02-07
    相关资源
    最近更新 更多