从 QFile 获取没有文件名的文件地址

get file address without file name from QFile

我有一个 Qfile,文件名="d://f1/f2/img.jpg"。我只想要文件的地址 ("d://f1/f2)。如何在不转换为 QfileInfo 的情况下获取它?

 QString folder=file.fileName().section("/",0,-2);

.section函数将qstring中的内容分开,并标注如下:

 _______________________________
| d: | / | /f1 | /f2 | /img.jpg |
 -------------------------------
| 0  | 1 |  2  |  3  |  4       |
 -------------------------------
| -5 |-4 | -3  | -2  | -1       |
 -------------------------------

所以 section("/",0,-2) 将 return : d://f1/f2

检查这个 link:

http://doc.qt.io/qt-4.8/qfileinfo.html#absolutePath

文件路径:

QFileInfo fi("c:/temp/foo"); => fi.absoluteFilePath() => "C:/temp/foo"

还有文件基名:

QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName();  // base = "archive"

我认为 frank-osterfeld 的评论是正确答案:

QString fpath (QFileInfo("/home/me/filename.txt").absolutePath());
std::cout << fpath.toStdString() << std::endl;

打印:

/home/me