【发布时间】:2014-01-19 16:54:20
【问题描述】:
我正在尝试使用重命名函数来更改 C++ 中的文件位置。我的问题是我想拥有输入和输出字符串并重命名它似乎只适用于字符。必须做什么??
编辑1:
for(int i=0; i<dirs.size(); i++){
if(directories.size()>1)
for (int k=0; k<= directories.size()/2; k++){
result = rename((filePath+dirs[i]+directories[k]).c_str(), ("test1/"+dirs[i]+directories[k]).c_str());
}
}
}
基本上我想将filePath/dir[i] dir的半个文件剪切并粘贴到newfilePath/dir[i] dir。 newFilePath 目录是空的,所以我还想创建相同的 dir[i] 文件夹并将文件剪切到新路径中。似乎重命名不会创建新文件夹。
编辑2:
我添加了 mkdir 函数以便在新目录中创建相同的 dir[i] 文件夹。但是,重命名功能不会移动新目录中的文件!
for(int i=0; i<dirs.size();i++){
if(directories.size()>1){
mkdir(dirs[i].c_str(), 0777);
for (int k=0; k<= directories.size()/2; k++){
result= rename( (filePath+dirs[i]+directories[k]).c_str() , ("test1/"+dirs[i]+directories[k]).c_str() );
}
}
}
【问题讨论】:
-
在参数中使用
std::string的str()成员函数转换为const char*。 -
@arne 应该是
c_str()。 -
好吧,基本上我这里有一个逻辑错误。 “test1”文件夹是空的,我想在 test1 文件夹中创建相同的 dirs 文件夹和一半的目录文件(来自 filePath 文件夹)。似乎使用重命名功能我无法创建新文件夹。有什么想法吗?
-
@timrau 你是对的。
-
c_str() 工作正常,但我认为重命名最终不是我需要的!我想剪切和粘贴其他文件夹中的一些目录文件。