導航:首頁 > 文件教程 > 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遍歷文件夾下的文件相關的資料

熱點內容
網路標號怎麼用 瀏覽:352
會議上文件讀好後要說什麼 瀏覽:783
安裝壓縮文件office 瀏覽:417
2014年網路營銷大事件 瀏覽:186
首頁全屏安裝代碼 瀏覽:39
黨規黨紀指的哪些文件 瀏覽:995
windows編程圖形界面用什麼設置 瀏覽:266
deb文件安裝路徑 瀏覽:540
飛鴿傳送提示文件名太長 瀏覽:486
日服文件名 瀏覽:648
宏程序和編程哪個好學 瀏覽:965
怎麼打開微信中的文件怎麼打開方式打開方式 瀏覽:98
wordpressgbk版本 瀏覽:328
怎麼看網路的帶寬多少兆 瀏覽:930
word文檔粘貼出現文件包 瀏覽:673
u盤文件傳輸 瀏覽:593
飛行棋教程視頻 瀏覽:629
程序員下載網站 瀏覽:303
蘋果5為什麼不顯示4g網路 瀏覽:741
怎麼做好互聯網公司的微信公眾號 瀏覽:135

友情鏈接