• 11928阅读
  • 6回复

[提问]QDir::mkdir()创建文件夹不成功 [复制链接]

上一主题 下一主题
离线yzpdsg
 

只看楼主 倒序阅读 楼主  发表于: 2011-08-23
我想在D:\exam下创建一个example文件夹,使用了如下语句
QDir dir(ui->lineEdit_4->text());//D:\exam\
dir.mkdir(dirName);//dirName=example;
可是总是创建失败。这是为什么呢?应该不是写入权限的问题啊?
离线wxj120bw

只看该作者 1楼 发表于: 2011-08-23
Qt uses "/" as a universal directory separator in the same way that "/" is used as a path separator in URLs. If you always use "/" as a directory separator, Qt will translate your paths to conform to the underlying operating system.

这是QDir的手册的说明
离线yzpdsg

只看该作者 2楼 发表于: 2011-08-23
回 1楼(wxj120bw) 的帖子
这不是说windows下qt会自动转换"/"为"\"么?

我尝试了一下:
QDir dir("D:/exam/);//D:\exam\
dir.mkdir(dirName);//dirName=example;

还是不行。
离线wxj120bw

只看该作者 3楼 发表于: 2011-08-23
回 2楼(yzpdsg) 的帖子
先别用界面传路径 构建QDir对象 打印其当前路径 然后再mkdir下 还有该目录下不是已经有这个文件夹了吧
离线yzpdsg

只看该作者 4楼 发表于: 2011-08-24
回 3楼(wxj120bw) 的帖子
你的意思是这样?    
QDir dir(QDir::currentPath());
    if(dir.exists())
    {
        if(dir.mkdir(projectName + "--" + newDir))
        {
            QMessageBox msgBox;
            msgBox.setText(tr("文件夹创建成功"));
            msgBox.exec();
        }
        else
            QMessageBox::critical(this,tr("发生错误"),
                                  tr("无法创建文件夹,请确认所选目录拥有写入权限!"),
                                  QMessageBox::Ok);
    }

我向毛主席保证,要新建的文件夹不存在。但是执行的结果还是报错不能新建文件夹,硬盘上也没有生成文件夹,郁闷!。


离线wxj120bw

只看该作者 5楼 发表于: 2011-08-24
回 4楼(yzpdsg) 的帖子
我的系统是xp
QDir dir(QDir::currentPath());
qDebug() << dir.mkdir(QString("111"));
创建文件夹成功

你的系统是啥
离线yzpdsg

只看该作者 6楼 发表于: 2011-08-24
回 3楼(wxj120bw) 的帖子
我晕!!!原来是我的文件夹名中含有禁止使用的字符“:”才导致创建失败的!被这个符号卡了一天,只能苦笑了。。。
快速回复
限100 字节
 
上一个 下一个