从QFile获取文件名?

Ash*_*iya 47 qt qt4

例如:

QFile f("/home/umanga/Desktop/image.jpg");
Run Code Online (Sandbox Code Playgroud)

我怎么只得到文件名 - "image.jpg"?

Arn*_*nce 90

使用a QFileInfo去除路径(如果有):

QFileInfo fileInfo(f.fileName());
QString filename(fileInfo.fileName());
Run Code Online (Sandbox Code Playgroud)

  • 通过将QFile作为参数提供给QFileInfo构造函数,可以使这更短:`QFileInfo fileInfo(f);` (15认同)
  • 如果文件不存在,这将失败。 (2认同)

pax*_*blo 13

一种方法,不一定是最好的:从a QFile,你可以得到文件规范QFile::fileName():

QFile f("/home/umanga/Desktop/image.jpg");
QString str = f.fileName();
Run Code Online (Sandbox Code Playgroud)

然后你可以使用字符串功能,如QString::split:

QStringList parts = str.split("/");
QString lastBit = parts.at(parts.size()-1);
Run Code Online (Sandbox Code Playgroud)

  • QString lastBit = str.section("/", - 1,-1); (8认同)

ref*_*zee 8

另外:分离文件名和文件路径 QFile f

QString path = f.fileName();
QString file = path.section("/",-1,-1);
QString dir = path.section("/",0,-2);
Run Code Online (Sandbox Code Playgroud)

您不需要创建其他fileInfo.