然後通過size(file)函式,可以返回陣列的維度,得到資料夾下子檔案的個數。
這裡需要注意的一點是,資料夾下我們可以有120個檔案,因為120回嘛,但是size()函式返回值是122,比120多了2,這是為什麼呢?通過查資料才知道,原來啊,資料夾下前兩個子檔案,乙個是『.』,乙個是『..』。
所以我們的第一回『0001.txt』實際上是第3個子檔案哦。
然後通過迴圈好像就可以得到每乙個子檔案了喲,file(i)這個結構體裡面儲存的是第i個子檔案的所有資訊,通過file(i).name得到該子檔案的名字,比如『0001.txt』。
但是在用fopen()函式的時候,上面也有提到,需要寫的是檔案的位置和名字即完整的檔名。那麼如何將位置和file(i).name聯絡在一起呢?在嘗試過各種錯誤之後(因為file(i).name返回值是帶有引號的,所以其實是不可以用傳統的方式直接將兩個字串連線起來),終於找到了乙個函式:fullfile()函式,nice!
filepath=fullfile(『c:\users\shuxin\desktop\紅樓夢』,file(i).name)
得到filepath=c:\users\shuxin\desktop\紅樓夢\0001.txt
然後fopen()就可以正常使用啦。
接下來就是fscanf()函式:
fscanf()函式
a=fscanf(),從fopen開啟的檔案中讀取資料存入a中,a是矩陣的形式呢。
```clear
clcfile=dir('c:\users\shuxin\desktop\紅樓夢')%資料夾的名字,返回結構體陣列
k=size(file) %檔案個數
ch=input('請輸入要查詢的字元:\n','s')
m=length(ch)
fori=1:k %迴圈
name=file(i).name %子檔名
ifi>2
filepath=fullfile('c:\users\shuxin\desktop\紅樓夢',name)%子檔案完整位置及名稱
ans=fopen(filepath,'r') %開啟檔案
cnt=fscanf(ans,'%c') %ans表示檔案是否成功開啟,『%c』表示資料格式
n=length(cnt)
ant=0
fori=1:n-m+1
if(strcmp(cnt(i:i+m-1),ch))
ant=ant+1;
endend fprintf('第%d回里總共有%d個%s\n',i,ant,ch)
endend
遍歷資料夾下所有檔案
對於遍歷資料夾來說,其實並不麻煩,使用file轉化位址物件,再用file組獲取內容,其實google都差不多做好了,我就懶得廢話了,直接上 public listlist new arraylist 遍歷所有檔案 public listgetfilelist string path else ret...
Python Python讀取資料夾下的所有檔案
os.listdir path 是得到在path路徑下所以檔案的名稱列表。open path 是開啟某個檔案。iter是python的迭代器。所以讀取某資料夾下的所有檔案如下 import os path d python34 news 資料夾目錄 files os.listdir path 得到資...
PHP遍歷資料夾下檔案
dir e video 這裡輸入其它路徑 php遍歷資料夾下所有檔案 handle opendir dir.echo 檔案 while false file readdir handle closedir handle 用了這段 遍歷所有檔案,幫我把所有檔名存為乙個陣列。s explode n tr...