獲取文件夾路徑
static QString getExistingDirectory(QWidget *parent = Q_NULLPTR,
const QString &caption = QString(),
const QString &dir = QString(),
Options options = ShowDirsOnly);
參數1:父窗口
參數2:彈出界面的菜單欄文字
參數3:打開的初始目錄 比如“/”表示根目錄
使用方法
void Widget::on_openSrcDirPushButton_clicked()
{
//文件夾路徑
srcDirPath = QFileDialog::getExistingDirectory(
this, "choose src Directory",
"/");
if (srcDirPath.isEmpty())
{
return;
}
else
{
qDebug() << "srcDirPath=" << srcDirPath;
srcDirPath += "/";
}
}
注意:
qDebug() << "srcDirPath=" << srcDirPath;輸入我們打開目錄的路徑,比如:/mnt/hgfs,這時候如果我們要讀取這個目錄下的文件,此時路徑應為這里寫代碼片/mnt/hgfs/然后加上文件名才是文件的全路徑。不過或許大家用不到srcDirPath += “/”;`這一句。
獲取文件路徑(選擇文件):
獲取文件路徑使用getOpenFileName即可。使用方法和getExistingDirectory類似。
static QString getOpenFileName(QWidget *parent = Q_NULLPTR,
const QString &caption = QString(),
const QString &dir = QString(),
const QString &filter = QString(),
QString *selectedFilter = Q_NULLPTR,
Options options = Options());
參數1:父窗口
參數2:彈出界面的菜單欄文字
參數3:打開的初始目錄 比如“/”表示根目錄
參數4:設置打開的文件類型
參數5:看代碼。。。
使用方法:
void Widget::slotBtnClick()
{
QString s = QFileDialog::getOpenFileName(
this, "選擇要播放的文件",
"/",
"視頻文件 (*.flv *.rmvb *.avi *.mp4);; 所有文件 (*.*);; ");
qDebug() << "path=" << s;
if (!s.isEmpty())
{
}
}
另外的方法:
QString file_full, file_name, file_path;
QFileInfo fi;
file_full = QFileDialog::getOpenFileName(this);
fi = QFileInfo(file_full);
file_name = fi.fileName();
file_path = fi.absolutePath();
void monizhuzhan::filenameInDir()
{
//判斷路徑是否存在
QDir dir(path);
if(!dir.exists())
return;
//查看路徑中后綴為.cfg格式的文件
QStringList filters;
filters<<QString("*.cfg");
dir.setFilter(QDir::Files | QDir::NoSymLinks); //設置類型過濾器,只為文件格式
dir.setNameFilters(filters); //設置文件名稱過濾器,只為filters格式
//統計cfg格式的文件個數
int dir_count = dir.count();
if(dir_count <= 0)
return;
// //測試
// //文件路徑及名稱
// QFile outFile( "filename.txt");
// //看能否打開
// if(!outFile.open(QIODevice::WriteOnly | QIODevice::Append))
// return ;
// QTextStream ts(&outFile);
//存儲文件名稱
QStringList string_list;
for(int i=0; i<dir_count; i++)
{
QString file_name = dir[i]; //文件名稱
//ts<<file_name<<"\r\n"<<"\r\n";
string_list.append(file_name);
}
}
其中注釋部分可實現將文件名稱存入到txt中。
總體思路:得到路徑--去除路徑下的無效文件--統計個數--獲取文件名稱
