如何遞歸查詢有多少個文件
① 請問linux下如何遞歸查找某個目錄的所有文件
用find。
比如,我在根目錄"/"下查找一個名字為」a.c「的文件:
find
/
-type
f
-name
"a.c"
-type
f
---說明我查找的是一個常規文件。
② java如何查詢文件夾內有多少個文件
java的file類實現文件夾和文件的遍歷,連隱藏的文件都能遍歷
代碼如下:
importjava.io.File;
/**
*java遞歸遍歷文件夾和文件
*@authoryoung
*
*/
publicclassEX4_1
{
publicstaticvoidFindFile(Strings){
Filefile=newFile(s);
for(Stringtemp:file.list()){
Stringnewstr=s+"\"+temp;
if(newFile(newstr).isFile()){
System.out.println(newstr);
}else{
FindFile(newstr);
}
}
}
publicstaticvoidmain(Stringargs[])
{
FindFile("F:\workspace\one\src");//指定遍歷的目錄
}
}
③ 如何用遞歸獲取一個文件夾內的所有文件存放在一個文件數組中
可以先讀取出文件夾內的所有文件,讀出來之後,放到一個文件中,然後再
用數據取出來。存到數組中,public
class
IOtest{
public
static
void
main(String
args){
String
str
=
"c:\\";//假設要讀c盤中的所有文件,也可以自己寫一個文件路徑
File
f
=
new
File(str);
fun(f);
}
public
static
void
fun(File
f){
if(f.idDirectory()){
File
file
=
f.listFile();//列出所有目錄
try{
for(int
i=0;
i<file.length;
i++){
fun(file);
}
}carch(Exception
e){
}else{
System.out.print(f);
}
}
}}上面這段代碼是把目錄下的文件全部列出來,你可以再寫一個讀取的
④ 指定一個目錄,統計該目錄中有多少個Java源文件。要求用遞歸實現
import java.io.File;
import java.util.regex.Pattern;
public class Tt {
private int sumFiles = 0;
private int sumDirs = 0;
public void countFiles(File file) {
try {
if (file.isDirectory()) {
sumDirs += 1;
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
countFiles(files[i]);
}
} else if (file.getName().matches("^.*\\.java$")) {
System.out.println(file.getPath()+"\\"+file.getName()+"\n");
sumFiles += 1;
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public int getSumFiles() {
return sumFiles;
}
/**
* @param args
*/
public static void main(String[] args) {
Tt tt = new Tt();
File file = new File("D:\\android\\workplace");
tt.countFiles(file);
System.out.println(tt.getSumFiles());
}
}
⑤ JAVA遍歷一個文件夾中的所有文件---(遞歸)
public void traverseFolder2(String path) {
File file = new File(path);
if (file.exists()) {
File[] files = file.listFiles();
if (null == files || files.length == 0) {
System.out.println("文件夾是空的!");
return;
} else {
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夾:" + file2.getAbsolutePath());
traverseFolder2(file2.getAbsolutePath());
} else {
System.out.println("文件:" + file2.getAbsolutePath());
}
}
}
} else {
System.out.println("文件不存在!");
}
}
(5)如何遞歸查詢有多少個文件擴展閱讀
public void traverseFolder1(String path) {
int fileNum = 0, folderNum = 0;
File file = new File(path);
if (file.exists()) {
LinkedList<File> list = new LinkedList<File>();
File[] files = file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夾:" + file2.getAbsolutePath());
list.add(file2);
foldeNum++;
} else {
System.out.println("文件:" + file2.getAbsolutePath());
fileNum++;
}
}
File temp_file;
while (!list.isEmpty()) {
temp_file = list.removeFirst();
files = temp_file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夾:" + file2.getAbsolutePath());
list.add(file2);
folderNum++;
} else {
System.out.println("文件:" + file2.getAbsolutePath());
fileNum++;
}
}
}
} else {
System.out.println("文件不存在!");
}
System.out.println("文件夾共有:" + folderNum + ",文件共有:" + fileNum);
}
⑥ 遞歸查找目錄下所有指定文件(包括深層目錄)
import java.io.*;
public class ShowAll {
public static void main(String[] args) throws Exception {
File f = new File("xxx");
if (f.isDirectory()) {
FileFilter filter = new MyFilter1();
File[] fs = f.listFiles(filter);
for (int i = 0; i < fs.length; i++) {
System.out.println(fs[i].getAbsolutePath());
}
}
}
}
class MyFilter1 implements FileFilter {
public boolean accept(File f) {
if (f.isDirectory()) {
FileFilter filter = new MyFilter1();
File[] fs = f.listFiles(filter);
for (int i = 0; i < fs.length; i++) {
System.out.println(fs[i].getAbsolutePath());
}
}
String name = f.getName();
if (name.indexOf(".hehe") == -1) return false;
else return true;
}
}
⑦ linux系統如何查看文件夾下有多少個文件
可以使用命令:
ls -R1 | grep [^/] | wc -l
ls -R(表示遞歸操作【可以繼續顯示子目錄下的文件】)
-1(這個是數字1)【強迫ls命令以每個文件佔一行的形式輸出】
| (豎線)【叫管道可以把 一個程序的標准輸出給另一個程序當標准輸入】
grep 可以選取特定的行 [^/] 正則表達式 表示不要有/的行
wc -l (統計行數)
這樣就可以知道目錄下的文件數量了
⑧ 用遞歸統計文件數
用統計文件數做一個示範吧,VB的,先要在引用里加上Microsoft Scripting Runtime:
Function FileCount(d As Scripting.Folder) As Integer
FileCount=0
Dim flds As Scripting.Folders, fld As Scripting.Folder, fld2 As Scripting.Folder, Fles As Scripting.Files, Fle As Scripting.File
Set flds = d.SubFolders
For Each fld In flds
FileCount=FileCount+FileCount(fld)
Next
Set Fles = d.Files
For Each Fle In Fles
FileCount=FileCount+1
Next
End Function
那個Scripting.Folder類需要這樣賦值:
Dim fs As New Scripting.FileSystemObject
Set fld = fs.GetFolder(文件夾路徑)
另外,如果是NTFS格式文件系統,最好要考慮文件的訪問許可權問題