当前位置: 首页 > news >正文

在Windows和Linux平台上使用c++获取文件当前路径

.h

#include <iostream>
#include <string>
#ifdef _WIN32
#include <windows.h>  // 包含Windows API定义
#else
#include <limits.h> // 为了PATH_MAX
#include <unistd.h> // 为了getcwd
#endif // _WIN32
using namespace std;
#ifdef _WIN32
//获取当前路径
string getAbuselatePath() {
    char buffer[MAX_PATH] = { 0 }; // MAX_PATH常量定义了路径的最大长度
     // 获取当前目录
    if (GetCurrentDirectoryA(MAX_PATH, buffer) != 0) {
        return std::string(buffer); // 成功时返回当前目录
    }
    else {
        // 如果失败,可以在这里处理错误
        return std::string();
    }
}
#else
//获取当前路径
string getAbuselatePath() {
    char buffer[PATH_MAX];
    if (getcwd(buffer, sizeof(buffer)) != NULL) {
        return std::string(buffer); // 成功时返回当前目录
    }
    else {
        // 如果失败,可以在这里处理错误
        return std::string();
    }
}
#endif // _WIN32

main.cpp

#include <iostream>
#include "abuselatePath.h"
int main() 
{
	string s = getAbuselatePath();
	cout << s << endl;
}

Windows:

Linux:

相关文章:

  • [AI相关]Unity的C#代码如何简写
  • 探索JavaScript网页设计的无限可能:从基础到AI集成
  • ChatBox对接DeepSeek R1大模型
  • wordpress企业官网建站的常用功能
  • golang channel底层实现?
  • hot100——11,42
  • python爬虫系列课程3:解决爬虫过程中遇到的编码问题
  • Windows逆向工程入门之调用约定
  • Python logging 库全面指南
  • Skibidus and Fanum Tax (easy version)----Skibidus 和 Fanum 税(简易版)
  • 第四届图像、信号处理与模式识别国际学术会议(ISPP 2025)
  • 利用acme.sh 申请 Google 免费证书
  • 人车检测与计数系统(python+课程设计报告+源代码+数据集)
  • LeetCode 98.验证二叉搜索树
  • vscode远程报错:Remote host key has changed,...
  • 软件安全测试技术系列|跨站脚本攻击(Cross Sites Script)类漏洞攻击方式与防御措施
  • Opencv项目实战:26 信用卡号码识别与类型判定
  • 自动化办公|通过xlwings进行excel格式设置
  • 防火墙综合实验
  • ✨1.HTML、CSS 和 JavaScript 是什么?
  • 印度证实印巴已同意停火
  • 沃旭能源因成本上升放弃英国海上风电项目,或损失近40亿元
  • 西安机场回应航站楼“水帘洞”事件:屋面排水系统被冰雹堵塞
  • 近4小时会谈、3项联合声明、20多份双边合作文本,中俄元首今年首次面对面会晤成果颇丰
  • 上海充电桩调研:须全盘考量、分步实现车网互动规模化
  • 夜读丨母亲的手擀面