Qt 路径的分隔符是 /
,windows 路径分隔符为 \
。
QString QDir::cleanPath(const QString &path)
或
QString QDir::fromNativeSeparators(const QString &pathName)
示例:
QString strWinDir("D:\\1\\2\\3\\"); // "D:\1\2\3\"
// cleanPath 将最后多余的 / 去掉了
QString strQtDir = QDir::cleanPath(strWinDir);
// "D:/1/2/3"
// fromNativeSeparators 只是将 \ 转换为 /
QString strQtDir1 = QDir::fromNativeSeparators(strWinDir);
// "D:/1/2/3/"
QString QDir::toNativeSeparators(const QString &pathName)
示例:
QString strQtDir = "D:/1/2/3";
QString strQtDir1 = "D:/1/2/3/";
strWinDir = QDir::toNativeSeparators(strQtDir);
// "D:\1\2\3"
strWinDir1 = QDir::toNativeSeparators(strQtDir1);
// "D:\1\2\3\"
QDir temDir("../../image.png");
QString filePath = temDir.absolutePath();
“E:/image.png”
QString applicationDirPath;
applicationDirPath = QCoreApplication::applicationDirPath();
qDebug()<<"applicationDirPath"<<applicationDirPath;
“E:/QtProject/build-untitled-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug”
QString applicationFilePath;
applicationFilePath = QCoreApplication::applicationFilePath();
qDebug()<<"applicationFilePath"<<applicationFilePath;
“E:/QtProject/build-untitled-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug/untitled.exe”
这个类似于“./”操作。
QString currentPath;
QDir dir;
currentPath=dir.currentPath();
qDebug()<<"path"<<currentPath;
“E:/QtProject/build-untitled-Desktop_Qt_5_14_2_MinGW_64_bit-Debug”
bool QDir::exists(const QString &name) const
bool QDir::rmdir(const QString &dirName)
传入的参数 dirName 为目录名,如果输入一个多级目录的路径,删除的为最后一级目录,且该目录必须为空,只能是文件夹,不能是文件。
如果目录不存在,返回 false。
bool QDir::rmpath(const QString &dirPath)
传入的参数为目录的路径,可以删除给定路径的所有父目录,但路径中所有的目录必须为空目录,如 路径为 D:/6/5,则文件夹 6 中只包含文件夹 5,文件夹 5 中无文件,则可以删除该目录。
QDir dir("C:/Test");
QString filePath = dir.absoluteFilePath("temp.dat");
// filePath==C:/Test/temp.dat
QString path = QDir::toNativeSeparators(dir.absoluteFilePath("temp.dat"));
// "D:\\Test\\1.txt"
QFileInfo fileInfo("C:/Test/temp.dat");
QDir dir(fileInfo.canonicalPath());
QString filePath = dir.absoluteFilePath("temp_1.dat");
// filePath==C:/Test/temp_1.dat
若文件不存在,则canonicalPath()函数返回一个空字符串。