【发布时间】:2011-04-08 14:38:07
【问题描述】:
例如:
QFile f("/home/umanga/Desktop/image.jpg");
我如何只获得文件名 - “image.jpg”?
【问题讨论】:
例如:
QFile f("/home/umanga/Desktop/image.jpg");
我如何只获得文件名 - “image.jpg”?
【问题讨论】:
使用QFileInfo 去除路径(如果有):
QFileInfo fileInfo(f.fileName());
QString filename(fileInfo.fileName());
【讨论】:
QFileInfo fileInfo(f);
一种方法,不一定是最好的:从QFile,您可以使用QFile::fileName() 获取文件规范:
QFile f("/home/umanga/Desktop/image.jpg");
QString str = f.fileName();
那么你就可以使用QString::split这样的字符串功能:
QStringList parts = str.split("/");
QString lastBit = parts.at(parts.size()-1);
【讨论】:
../../a/b/c?那仍然会正确拆分并给你c。
只是另外:将具有QFile f的文件名和文件路径分开
QString path = f.fileName();
QString file = path.section("/",-1,-1);
QString dir = path.section("/",0,-2);
您不需要创建额外的文件信息。
【讨论】:
我用这个:
bool utes::pathsplit(QString source,QString *path,QString *filename)
{
QString fn;
int index;
if (source == "") return(false);
fn = source.section("/", -1, -1);
if (fn == "") return(false);
index = source.indexOf(fn);
if (index == -1) return(false);
*path = source.mid(0,index);
*filename = fn;
return(true);
}
【讨论】: