Qt 獲取選擇的文件夾和文件路徑


獲取文件夾路徑
1 static QString getExistingDirectory(QWidget *parent = Q_NULLPTR, 2                                     const QString &caption = QString(), 3                                     const QString &dir = QString(), 4                                     Options options = ShowDirsOnly); 5 參數1:父窗口 6 參數2:彈出界面的菜單欄文字 7 參數3:打開的初始目錄 比如“/”表示根目錄

使用方法

 1 void Widget::on_openSrcDirPushButton_clicked()  2 {  3     //文件夾路徑
 4     srcDirPath = QFileDialog::getExistingDirectory(  5                this, "choose src Directory",  6                 "/");  7 
 8     if (srcDirPath.isEmpty())  9  { 10         return; 11  } 12     else
13  { 14         qDebug() << "srcDirPath=" << srcDirPath; 15         srcDirPath += "/"; 16  } 17 }

注意:
qDebug() << "srcDirPath=" << srcDirPath;輸入我們打開目錄的路徑,比如:/mnt/hgfs,這時候如果我們要讀取這個目錄下的文件,此時路徑應為這里寫代碼片/mnt/hgfs/然后加上文件名才是文件的全路徑。不過或許大家用不到srcDirPath += “/”;`這一句。

獲取文件路徑(選擇文件):

獲取文件路徑使用getOpenFileName即可。使用方法和getExistingDirectory類似。

 1 static QString getOpenFileName(QWidget *parent = Q_NULLPTR,  2                                const QString &caption = QString(),  3                                const QString &dir = QString(),  4                                const QString &filter = QString(),  5                                QString *selectedFilter = Q_NULLPTR,  6                                Options options = Options());  7 參數1:父窗口  8 參數2:彈出界面的菜單欄文字  9 參數3:打開的初始目錄 比如“/”表示根目錄 10 參數4:設置打開的文件類型 11 參數5:看代碼。。。

使用方法:

 1 void Widget::slotBtnClick()  2 {  3     QString s = QFileDialog::getOpenFileName(  4                 this, "選擇要播放的文件",  5                 "/",  6                 "視頻文件 (*.flv *.rmvb *.avi *.mp4);; 所有文件 (*.*);; ");  7     qDebug() << "path=" << s;  8     if (!s.isEmpty())  9  { 10 
11  } 12 }

另外的方法:

1 QString file_full, file_name, file_path; 2 QFileInfo fi; 3   
4 file_full = QFileDialog::getOpenFileName(this); 5   
6 fi = QFileInfo(file_full); 7 file_name = fi.fileName(); 8 file_path = fi.absolutePath();
 1 void monizhuzhan::filenameInDir()  2 {  3     //判斷路徑是否存在
 4  QDir dir(path);  5     if(!dir.exists())  6         return;  7  
 8     //查看路徑中后綴為.cfg格式的文件
 9  QStringList filters; 10     filters<<QString("*.cfg"); 11     dir.setFilter(QDir::Files | QDir::NoSymLinks); //設置類型過濾器,只為文件格式
12     dir.setNameFilters(filters);  //設置文件名稱過濾器,只為filters格式 13  
14     //統計cfg格式的文件個數
15     int dir_count = dir.count(); 16     if(dir_count <= 0) 17         return; 18  
19 //  //測試 20 //  //文件路徑及名稱 21 // QFile outFile( "filename.txt"); 22 //  //看能否打開 23 // if(!outFile.open(QIODevice::WriteOnly | QIODevice::Append)) 24 // return ; 25 // QTextStream ts(&outFile); 26  
27     //存儲文件名稱
28  QStringList string_list; 29     for(int i=0; i<dir_count; i++) 30  { 31         QString file_name = dir[i];  //文件名稱 32         //ts<<file_name<<"\r\n"<<"\r\n";
33  string_list.append(file_name); 34  } 35  
36 }

其中注釋部分可實現將文件名稱存入到txt中。

總體思路:得到路徑--去除路徑下的無效文件--統計個數--獲取文件名稱


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM