QDir的用法

来源:互联网 发布:唯品会抢购神器软件 编辑:程序博客网 时间:2024/05/18 02:44

类QDir提供了对目录结构和它们的内容的访问方式。QDir用来操作路径名,访问关于路径和文件的信息,操作基础的文件系统,还可以用来访问Qt的资源系统。
       Qt使用"/"来作为通用的目录分隔符,这一点和在URLs中的路径分割符的用法一致。如果你使用"/"作为文件分隔符,Qt会自动地转换你的路径来匹配你的基础的操作系统。
       绝对路径的用法:
QDir("/home/user/Documents")
QDir("C:/Documents and Settings")
       相对路径的用法:
QDir("images/landscape.png")

#include <QtCore>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QDir mDir("D:/qttest"); //或者可以用D:\\qttest来代替
    QDir nDir;
    qDebug() << mDir.exists(); //测试文件是否存在
    qDebug() << mDir.absoluteFilePath("main.cpp"); //返回指定目录下指定文件的绝对路径
    qDebug() << mDir.dirName(); //剥离掉路径,只返回目录的名字

    QFileInfo fi("C:/Documents and Settings/Administrator/pcmscan.cfg");
    qDebug() << fi.absoluteFilePath(); //返回文件的绝对路径
    qDebug() << fi.filePath(); //返回文件的路径
    qDebug() << fi.fileName(); //剥离掉路径,只返回文件的名字

    //driver()返回系统根目录下的目录列表
    foreach(QFileInfo mItem, nDir.drives())
    {
        qDebug() << mItem.absolutePath();
    }

    //entryInfoList()根据名字或属性顺序返回指定目录下所有的文件和目录的QFileInfo对象
    foreach(QFileInfo nItem, nDir.entryInfoList())
    {
        qDebug() << nItem.absoluteFilePath();
    }

    QString mPath = "D:/test/ZZZ";
    QDir kDir;

    if(!kDir.exists(mPath)) //判断指定目录下是否存在指定目录
    {
        kDir.mkpath(mPath); //生成指定目录
        qDebug() << "Create";
    }
    else
    {
        qDebug() << "Already exits";
    }

    return a.exec();
}
       运行,输出为:
true
"D:/qttest/main.cpp"
"qttest"
"C:/Documents and Settings/Administrator/pcmscan.cfg"
"C:/Documents and Settings/Administrator/pcmscan.cfg"
"pcmscan.cfg"
"C:/"
"D:/"
"E:/"
"F:/"
"G:/"
"H:/"
"D:/qttest/QtDir-build-desktop"
"D:/qttest"
"D:/qttest/QtDir-build-desktop/debug"
"D:/qttest/QtDir-build-desktop/Makefile"
"D:/qttest/QtDir-build-desktop/Makefile.Debug"
"D:/qttest/QtDir-build-desktop/Makefile.Release"
"D:/qttest/QtDir-build-desktop/release"
Already exits

0 0
原创粉丝点击