如何从绝对路径转到相对路径

How to go from absolute path to relative path?

本文关键字:路径 相对      更新时间:2023-10-16

我正在制作一个小程序来帮助文件读取。

我有一个 for 循环来从命令行接收命令:

 for (i = 1; argc > i; i++)
            {
                QString path = QDir::currentPath()+ "/" + QString(argv[i]);
                QDir dir(path);
                fileSearch(dir);
            }

从那里我调用另一个方法,在那里我查看每个文件/foler并获取大小以及它是文件还是文件夹。

void fileSearch(QDir dir)
{
        foreach(QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::AllDirs ))
            {
                if (info.isFile())
                {
                    qDebug() << info.path() << "is a file! its size is:" << info.size() << endl;
                }
                if (info.isDir())
                {
                    qDebug() << info.path() << "is a directory! its size is:" << info.size() << endl;
                    fileSearch(info.filePath());
                }
            }

我希望它只读取相对路径,而不是读取整个路径。所以而不是阅读:

home/john/desktop/project/currentproject/checkdirectory is a directory! its size is: 4096
home/john/desktop/project/currentproject/checkdirectory/test.txt is a file! its size is: 4

我希望它读到:

checkdirectory/ is a directory! its size is: 4096
checkdirectory/test.txt is a file! its size is: 4
QString QDir::relativeFilePath(const QString & fileName);

应返回相对文件路径。