21

Qtを使用して、ユーザーからファイル名を取得しています。

QString fileName = QFileDialog::getOpenFileName(this,tr("Select an image file"),"d:\\",tr("Image files(*.tiff *.tif )"));

動作しますが、拡張子のないファイル名が必要ですが、Qtで可能ですか?私が試すとき:

QString f = QFileInfo(fileName).fileName();

f「filename.tif」に似 ていますが、「filename にしたいです。

4

5 に答える 5

98

QFileInfoこれには 2 つの機能があります。

QString QFileInfo::completeBaseName () const

最短の拡張子を削除したファイル名を返します ( file.tar.gz-> file.tar)

QString QFileInfo::baseName () const

最長の拡張子を削除したファイル名を返します ( file.tar.gz-> file)

于 2013-03-06T10:49:03.377 に答える
2

split fileName「。」でできます。このような区切りとして:

QString croped_fileName=fileName.split(".",QString::SkipEmptyParts).at(0);

またはsectionQString の関数を使用して、「。」の前の最初の部分を取ります。このような:

QString croped_fileName=fileName.section(".",0,0);
于 2013-03-06T10:39:42.730 に答える
1

あなたはそれを分割する場所としてQString::split使用して使用することができます。.

QStringList list1 = str.split(".");

それはでを返しQStringListます{"filename", "extenstion"}。これで、拡張子なしでファイル名を取得できます。

于 2013-03-06T10:37:58.490 に答える