C++编程设置文件夹权限仍无法创建子目录,求解决方案
问题根源与解决办法
核心问题很明确:你修改的是当前工作目录的权限,但你要创建的/GraspData是在**系统根目录(/)**下——根目录的权限和当前工作目录完全是两回事,普通用户默认没有在根目录创建文件/文件夹的权限,所以改当前目录权限根本没用。
给你几个可行的解决方向:
优先选:换创建路径到当前工作目录
不要在根目录折腾,改成在当前程序运行的目录下创建子目录。把代码里的std::filesystem::create_directory("/GraspData");改成下面任意一种:- 直接用你定义好的变量:
std::filesystem::create_directory(graspdatafolderpath);(前提是这个变量的值是相对路径,比如"./GraspData") - 硬写相对路径:
std::filesystem::create_directory("./GraspData");
- 直接用你定义好的变量:
非要在根目录创建?用管理员权限运行程序
Linux/macOS下,在终端用sudo ./你的程序名启动;Windows右键程序,选择「以管理员身份运行」。但非常不推荐这么做,根目录是系统核心目录,随便加文件夹容易破坏系统结构。额外优化建议
代码里已经定义了graspdatafolderpath变量,但最后创建时却硬写了"/GraspData",这种不一致的写法容易出问题,建议全程用变量管理路径。
内容的提问来源于stack exchange,提问作者Raphael10
相关产品推荐
相关产品推荐

