.使用IO相关API,编写一个Java程序,遍历输出指定目录下的所有目录与文件名.

包含完整路径,使用命令参数指定目标目录的路径。

import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* 读取目录及子目录下指定文件名的路径 并放到一个数组里面返回遍历
* @author zdz8207
*
*/
public class FileViewer {
public static void main(String[] args) {
//List arrayList = FileViewer.getListFiles("d:/com","html",true);

//读取d:/com下的以java 结尾的文件 如有子目录,包含之(后缀名为null则为所有文件)
//List arrayList = FileViewer.getListFiles("d:/com","java",true);

//经试验,后缀不能不填写,否则编译不通过,提示“FileViewer.java:17: 非法的表达式开始”。
//另外后缀为""时的情况需要 增加到IF 里去,否则 后缀为""时,不会显示所有文件
List arrayList = FileViewer.getListFiles("d:/com","",true);
if(arrayList.isEmpty())
{
System.out.println("没有符号要求的文件");
}
else
{
String message = "";
message += "符号要求的文件数:" + arrayList.size() + "\r\n";
System.out.println(message);

for (Iterator i = arrayList.iterator(); i.hasNext();)
{
String temp = (String) i.next();
System.out.println(temp);
message += temp + "\r\n";
}
//将显示的文件路径写到指定的文件里,若文件不存在,则提示IO异常
//java.io.FileNotFoundException: d:\ajax\menu.txt (系统找不到指定的路径。)
//如果 加个文件是否存在的判断,如不存在就在当前目录新建一个,则更好。
appendMethod("d:/menu.txt",message);
}
}
public static List<String> fileList = new ArrayList<String>();

/**
*
* @param path 文件路径
* @param suffix 后缀名
* @param isdepth 是否遍历子目录
* @return
*/
public static List getListFiles(String path, String suffix, boolean isdepth)
{
File file = new File(path);
return FileViewer.listFile(file ,suffix, isdepth);
}

public static List listFile(File f, String suffix, boolean isdepth)
{
//是目录,同时需要遍历子目录
if (f.isDirectory() && isdepth == true)
{
File[] t = f.listFiles();
for (int i = 0; i < t.length; i++)
{
listFile(t[i], suffix, isdepth);
}
}
else
{
String filePath = f.getAbsolutePath();

System.out.println("suffix = "+suffix);
if(suffix =="" || suffix == null)
{
//后缀名为null则为所有文件
System.out.println("----------------");
fileList.add(filePath);
}
else
{
int begIndex = filePath.lastIndexOf(".");//最后一个.(即后缀名前面的.)的索引
String tempsuffix = "";

if(begIndex != -1)//防止是文件但却没有后缀名结束的文件
{
tempsuffix = filePath.substring(begIndex + 1, filePath.length());
}

if(tempsuffix.equals(suffix))
{
fileList.add(filePath);
}
System.out.println("|||||||||||||||||||");
}

}

return fileList;
}

/**
* 方法追加文件:使用FileWriter
* @param fileName
* @param content
*/
public static void appendMethod(String fileName, String content)
{
try
{
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content + "\r\n");
writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

.使用IO相关API,编写一个Java程序,遍历输出指定目录下的所有目录与文件...
import java.util.Iterator;import java.util.List;\/ 读取目录及子目录下指定文件名的路径 并放到一个数组里面返回遍历 author zdz8207 \/ public class FileViewer { public static void main(String[] args) { \/\/List arrayList = FileViewer.getListFiles("d:\/com","html",true);\/\/读取d:\/com...

java怎样获得某个目录下所有文件的文件名
如下代码使用递归算法遍历某个目录下的所有文件,并输出文件名 import java.io.File;import java.util.ArrayList;public class FileTest { private static ArrayList<String> filelist = new ArrayList<String>(); public static void main( String[] args ) throws Exception { String fileP...

用java 做一个程序扫描指定的目录及其所有的子目录和文件,输出格式要求...
public static void main(String[] args) { \/\/ TODO Auto-generated method stub int j = 0;while(j<5) { File f = new File("c:\/Mailboxes\/in\/");File[] fArray = f.listFiles();for(int i=0; i<fArray.length; i++) { if(fArray[i].getName().matches("[\\\\w]*.EML$")...

java代码 读取一个文件夹下的所有文件夹及里面的文件。
我给你个例子,你把其中的路径File file = new File("c:\\\\tmp\\\\5");改成你的路径就行了。public class Test2 { public static void main(String[] args){ File file = new File("c:\\\\tmp\\\\5");Test2 t = new Test2();t.method(file);} public void method(File f){ File[] F...

java怎么获取一个目录下的所有文件名
获取一个目录下的所有文件和目录方法:import java.io.File;public class FileTest { public static void main(String[] args) { \/** * 将目标目录封装成 File 对象。 *\/ File dir = new File("\/Users\/zym\/Desktop\/Mac应用程序"); \/** * 获取目录下的所有文件和文件...

java io遍历目录,在造出java文件,并读出内容?
public static void main(String[] args) throws IOException { File file = new File("E:\/JavaExercise\/eclipse-workspace\/0801\/src");File[] files = file.listFiles();\/\/FileInputStream fis = new FileInputStream(file + "\/");FileInputStream fis = null;if (files != null && files....

JAVA 中在一个函数中遍历文件夹里面的所有文件,获取他们的文件名,怎么...
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Vector;public class A { public static void recursion(String root, Vector<File> vecFile) { File file = new File(root);File[] subFile = file.listFiles();for (int i = ...

java遍历文件夹下所有文件包括子目录及文件放到json中后台代码_百度知 ...
import java.io.File;import net.sf.json.JSON;import net.sf.json.JSONObject;public class fileTest { public static void main(String[] args) throws Exception { File file= new File("你文件夹的路径");showAllFiles(file);} final static void showAllFile(File dir) throws Exception{ F...

java怎样获得某个目录下所有文件的文件名
import java.io.File;public class GetAllFiles { public static void main(String[] args) { \/\/路径 这里写一个路径进去 String path="F:\\\\QQ文档";\/\/调用方法 getFiles(path);} \/ 递归获取某路径下的所有文件,文件夹,并输出 \/ public static void getFiles(String path) { File file ...

用java写一段程序扫描文件夹下所有后缀为.txt的文件代码
import java.io.FilenameFilter;public class FileNameSelector implements FilenameFilter\/\/FilenameFilter接口实现文件名过滤器功能;{ String extension = ".";public FileNameSelector(String fileExtensionNoDot){ extension += fileExtensionNoDot;} Override public boolean accept(File dir, String name...

相似回答