操作目录
- mkdir() 创建目录,必须确保父目录存在,如果不存在,创建失败
- mkdirs() 创建目录,如果父目录链不存在,则一同创建
- list() 文件|目录 名字符串形式
- listFiles() 文件|目录 File 对象形式
- static listRoots() 根路径(获取盘符)
代码如下:
public class Demo04 {
/**
* @param args
*/
public static void main(String[] args) {
String path ="E:/xp/test/";
File src =new File(path); //文件夹
if(src.isDirectory()){ //存在并且为目录
System.out.println("======子目录|文件名===");
String[] subNames =src.list();
for(String temp:subNames){
System.out.println(temp);
}
System.out.println("=====子目录|文件File对象====");
File[] subFiles =src.listFiles();
for(File temp:subFiles){
System.out.println(temp.getAbsolutePath());
}
System.out.println("=====子文件.java对象====");
//命令设计模式
subFiles =src.listFiles(new FilenameFilter(){
@Override
/**
* dir 代表src
*/
public boolean accept(File dir, String name) {
//System.out.println(dir.getAbsolutePath());
return new File(dir,name).isFile()&&name.endsWith(".java");
}
});
for(File temp:subFiles){
System.out.println(temp.getAbsolutePath());
}
}
}
public static void test1(){
String path ="E:/xp/test/parent/p/test";
File src =new File(path);
//src.mkdir();
src.mkdirs();
}
}
以树状结构展现文件结构
编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹),利用 File 类和递归知识,实现树状结构的展示,代码如下:
public class TestFile {
/**
* 递归:
* 概念:在 java 代码中出现,出现本身调用自己的现象,我们称之为递归。
* 注意事项:
* 递归一定要有个出口,要不然就会程序阻塞。
*
*/
public static void main(String[] args) {
File f = new File("d:/src3");
printFile(f, 0);
}
static void printFile(File file, int level) {
for (int i = 0; i < level; i++) {
System.out.print("-");
}
System.out.println(file.getName());
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File temp : files) {
printFile(temp, level + 1);
}
}
}
}
递归的大体思路:首先去判断 file 是文件还是目录,如果是文件则直接打印文件名,如果是目录就把目录下的所有文件遍历一遍。按照这个递归下去,直到所有文件都被遍历结束。