GetCurrentDir - C++ Builder

C++ Builder 参考手册 ➙ System::Sysutils ➙ GetCurrentDir


获取当前路径

头文件:#include
命名空间:System::Sysutils
函数原型:

System::UnicodeString __fastcall GetCurrentDir(void);

参数:

  • 无;

返回值:

  • 当前文件夹的完整路径;
  • 当前路径的默认位置并不总是 exe 文件所在的文件夹:
    • 通过修改快捷方式的 "起始位置" 属性,通过这个快捷方式运行得到的是快捷方式的起始位置;
    • 通过命令行窗口运行 exe 文件,是命令行窗口的当前路径;
    • 通过父进程创建子进程的方式,是父进程的当前路径;
    • 通过函数 SetCurrentDir 设置,当前路径设置在哪就在哪……
  • 标准 C++ 的 里面有相同功能的函数:
    • 设置当前路径:chdir, _wchdir, _tchdir
    • 获取当前路径:getcwd, _wgetcwd, _tgetcwd

例:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Memo1->Lines->Add(GetCurrentDir());
}

程序编译之后,生成的 exe 文件在这里:
D:\Hsuanlu\Programs\System.Sysutils\Functions\GetCurrentDir\Win64\Debug
直接点击运行,或者从资源管理器里面直接双击运行,得到的是 exe 所在文件夹,结果截图如下:

在资源管理器里面直接点击运行

给这个 exe 文件创建一个快捷方式,修改快捷方式的属性当中的 "起始位置" 为 "C:\ProgramData",通过这个快捷方式运行这个 exe 文件或得到当前路径为快捷方式的起始位置,即 "C:\ProgramData",截图如下:

通过快捷方式运行

修改快捷方式的起始位置只影响通过这个快捷方式运行,如果直接双击 exe,或者通过其他方式运行,将不受影响,继续测试:打开命令行窗口,在 C:\Users\Public\Documents 文件夹,并且在这个文件夹里面输入并且直接执行 "D:\Hsuanlu\Programs\System.Sysutils\Functions\GetCurrentDir\Win64\Debug\Sysutils_GetCurrentDir.exe"
打开 exe 文件,得到的当前路径为 "C:\Users\Public\Documents",截图如下:

通过命令行窗口运行 exe 文件得到的当前路径是命令行窗口的当前路径,而不是 exe 文件所在文件夹。

通过命令行窗口执行 exe 文件

相关:

  • System::Sysutils::GetCurrentDir
  • System::Sysutils::SetCurrentDir
  • System::Sysutils::CreateDir
  • System::Sysutils::ForceDirectories
  • System::Sysutils::RemoveDir
  • System::Sysutils::FileExists
  • System::Sysutils::DirectoryExists
  • System::Sysutils::FileSearch
  • System::Sysutils::FindFirst
  • System::Sysutils::FindNext
  • System::Sysutils::FindClose
  • System::Sysutils::FileAge
  • System::Sysutils::FileGetDate
  • System::Sysutils::FileGetDateTimeInfo
  • System::Sysutils::FileSetDate
  • System::Sysutils::FileGetAttr
  • System::Sysutils::FileSetAttr
  • System::Sysutils::FileIsReadOnly
  • System::Sysutils::FileSetReadOnly
  • System::Sysutils::DeleteFile
  • System::Sysutils::RenameFile
  • System::Sysutils::IsAssembly
  • System::Sysutils::DiskFree
  • System::Sysutils::DiskSize
  • System::Sysutils::FileDateToDateTime
  • System::Sysutils::DateTimeToFileDate
  • System::Sysutils
  • System::Ioutils::TDirectory::GetCurrentDirectory
  • System::Ioutils::TDirectory::SetCurrentDirectory
  • System::Ioutils
  • getcwd, _wgetcwd, _tgetcwd
  • chdir, _wchdir, _tchdir

C++ Builder 参考手册 ➙ System::Sysutils ➙ GetCurrentDir

你可能感兴趣的:(GetCurrentDir - C++ Builder)