導航:首頁 > 文件教程 > qt遍歷文件夾下的文件

qt遍歷文件夾下的文件

發布時間:2023-08-29 19:21:01

Ⅰ QT編程中對於文件操作的程序講解,最好是把下面的程序一句一句的解釋下:在線等,十分感謝

void funlibEdit::InitTypeData()
{
//讀基本類型
QFile file("datatype"); //datatype為讀取的文件名,這里可以為路徑,否則表示為當前路徑
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) //設置為Text方式只讀,並判斷是否打開
return; //若打開失敗直接返回

QTextStream in(&file); //將內容讀到文本流中,即in中為datatype中的所有內容
while (!in.atEnd()) //循環遍歷到結束
{
QString loctype = in.readLine(); //讀一行到locttupe
loctype = loctype.simplified(); //這個應該是化簡,具體我不清楚,你可以去看下手冊simplified的函數功能
m_typelist.append(loctype); //在m_typelist這段字元串之後加上loctype這個字元串
}
file.close(); //關閉打開的datatype文件

//讀類型映射
QFile mapfile("datatypemap");
if (!mapfile.open(QIODevice::ReadOnly | QIODevice::Text)) //同上判斷
return;

QTextStream mapin(&mapfile); //同上
while (!mapin.atEnd()) //同上
{
QString mapline = mapin.readLine(); //同上
int index = mapline.indexOf(":"); //所以「:」,返回位置
QString outtype = mapline.left(index).simplified(); //同上
QString intype = mapline.right(mapline.length()-index-1).simplified(); //同上

m_typemap[outtype] = intype; //放到數組中,功能同上
}
mapfile.close(); //同上
}

Ⅱ QT中遍歷一個文件夾並給文件夾中的每個文件改名字,如何構造遍歷文件夾的迭代器,請高手指教啊

QDirIterator it("/etc", QDirIterator::Subdirectories);
while (it.hasNext()) {
qDebug() << it.next();

// /etc/.// /etc/..// /etc/X11// /etc/X11/fs// ...
}

迭代器不用自己寫 還有隻是重命名文件名不用打開文件的 我沒具體寫 你先試試吧

Ⅲ qt中怎樣遍歷一個txt文件內容

//用文件流來讀取
QFilefile("my.txt");
file.open(QIODevice::ReadOnly);
QTextStramout(&file);
while(!out.atEnd()){
//每次讀取一行,然後判斷即可
QStringstrReadLine=out.readLine();
}

Ⅳ 給出一個文件夾,然後程序遍歷該文件夾,記錄里的所有子文件夾及文件

首先是有一個已知的路徑,現在要遍歷該路徑下的所有文件及文件夾,因此定義了一個列表,用於存放遍歷到的文件名。C#代碼如下:

stringpath="給定的文件夾名稱";
List<string>nameList=newList<string>();
Director(path,nameList);

publicvoidDirector(stringdir,List<string>list)
{
DirectoryInfod=newDirectoryInfo(dir);
FileInfo[]files=d.GetFiles();//文件
DirectoryInfo[]directs=d.GetDirectories();//文件夾
foreach(FileInfofinfiles)
{
list.Add(f.Name);//添加文件名到列表中
}
//獲取子文件夾內的文件列表,遞歸遍歷
foreach(DirectoryInfoddindirects)
{
Director(dd.FullName,list);
}
}

Ⅳ 《qt》中如何提取當前目錄下指定後綴名的文件

QFileInfoList InfoList = QDir(qApp->applicationDirPath()).entryInfoList();//獲取當前目錄所有文件
QFileInfoList SuffixInfoList;//定義放提取文件的List
//遍歷
foreach(QFileInfo fileInfo, QFileInfoList)
{
if(!fileInfo.isFile()) continue;//不是文件繼續,只用於加速,可不加
//後綴不區分大小寫,需要區分直接用「==」
if(0==fileInfo.suffix().compare(後綴), Qt::Caseinsensitive)
{
SuffixInfoList << fileInfo;//指定後綴,加入列表
}
}

以上純為手打,不是Copy的,可能有些拼寫錯誤大小寫錯誤什麼的,望諒解

Ⅵ QT-用QDir非遞歸遍歷子文件夾及其文件

大多數的教程里採用遞歸遍歷的方式,而這種方式對內存的開銷很大,效率低,本篇文章用棧的知識來實現非遞歸遍歷

源碼:

QDir d("D:/viczsx/document/課程");        //此處修改遍歷文件夾地址

d.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks | QDir::AllDirs);//列出文件,列出隱藏文件(在Unix下就是以.開始的為文件),不列出符號鏈接(不支持符號連接的操作系統會忽略)

d.setSorting(QDir::Size | QDir::Reversed);//按文件大小排序,相反的排序順序

QFileInfoList list = d.entryInfoList();//返回這個目錄中所有目錄和文件的QFileInfo對象的列表

while(!list.isEmpty()){

    QFileInfo tem= list.last();

    if(!tem.isDir()){

        qDebug()<<  tem.fileName();

        list.removeLast();

    }else if(tem.fileName() != "." && tem.fileName() != ".."){

        qDebug()<< tem.filePath();

        QDir a(tem.filePath());

        list.removeLast();          //移除鏈表最後一項方便退回

        list.append(a.entryInfoList());

    }else{

        list.removeLast();

    }

}

第一篇博客

Ⅶ C語言:如何遍歷指定的文件夾(可以包括子文件夾)中的每一個文件名

Function SearchFiles(Path As String, FileType As String)
Dim Files() As String '文件路徑
Dim Folder() As String '文件夾路徑
Dim a, b, c As Long
Dim sPath As String

sPath = Dir(Path & FileType) '查找第一個文件

Do While Len(sPath) '循環到沒有文件為止
a = a + 1
ReDim Preserve Files(1 To a)
Files(a) = Path & sPath '將文件目錄和文件名組合,並存放到數組中
List1.AddItem Files(a) '加入控制項中
sPath = Dir '查找下一個文件
DoEvents '讓出控制權
Loop

sPath = Dir(Path & "\", vbDirectory) '查找第一個文件夾

Do While Len(sPath) '循環到沒有文件夾為止
If Left(sPath, 1) <> "." Then '為了防止重復查找
If GetAttr(Path & "\" & sPath) And vbDirectory Then '如果是文件夾則。。。。。。
b = b + 1
ReDim Preserve Folder(1 To b)
Folder(b) = Path & sPath & "\" '將目錄和文件夾名稱組合形成新的目錄,並存放到數組中
End If
End If
sPath = Dir '查找下一個文件夾
DoEvents '讓出控制權
Loop

For c = 1 To b '使用遞歸方法,遍歷所有目錄
SearchFiles Folder(c), FileType
Next

End Function

Private Sub Command1_Click() '調用
SearchFiles "e:\", "*.exe"
End Sub

Ⅷ 請問用autoit怎麼遍歷文件夾和子文件夾下的文件,列印文件的版本號呢求具體程序代碼,謝謝!

1)通過 FileFindFirstFile () 和 FileFindNextFile () 來遍歷一個文件夾,具體用法見AutoIt自帶的幫助文檔。
2)若 FileGetAttrib ("文件名") = 'D' 表示是子文件夾,再進去重復步驟1)遍歷。
3)重復以上步驟(這應該是一個遞歸的過程)。

獲取文件版本號用 FileGetVersion () 。
幫助里有個例子:
$ver = FileGetVersion("Explorer.exe")
MsgBox(0, "Explorer version", $ver)

有了以上信息,樓主應該可以自己嘗試寫寫代碼,就當作練習吧。

Ⅸ QT 獲得指定文件夾及子文件夾下面的文件

使用QDir::entryInfoList獲的文件夾下的所有文件列表(QFileInfoList),然後通過判斷QFileInfoList中每個QFileInfo的類型,QFileInfo::isDir()判斷是否目錄,QFileInfo::isFile()判斷是否是文件,對於目錄,同樣的方法處理即可獲得子目錄中的文件了。

閱讀全文

與qt遍歷文件夾下的文件相關的資料

熱點內容
win10管理該文件沒有與之關聯的程序 瀏覽:799
手機里qt是什麼文件夾 瀏覽:48
筆記本關閉開機密碼 瀏覽:672
無法定位程序輸入點inetntop 瀏覽:22
java修改文件編碼 瀏覽:12
js判斷火狐 瀏覽:229
微信開發支持https介面 瀏覽:779
為什麼文件上傳到一半卡住不動了 瀏覽:375
蘋果平板怎麼查看app消費記錄 瀏覽:98
保養車用什麼app 瀏覽:762
哪個網站看書好看 瀏覽:954
數控編程mc是什麼意思 瀏覽:356
f盤拒絕訪問有密碼 瀏覽:485
數控編程cr是什麼 瀏覽:808
此文件用戶庫 瀏覽:24
微信動漫頭像女 瀏覽:702
中央電視台的手機app叫什麼 瀏覽:882
大數據清洗什麼 瀏覽:413
拓者設計吧室內設計教程 瀏覽:583
js腳本來控制timer 瀏覽:596

友情鏈接