第一个例子,说明File类方法
File.separator,名称分隔符,即"\\"
getAbsolutePath(),
f.length()),文件内容的长度
getParentFile().mkdirs(),其中getParentFile()返回此抽象路径名父目录的抽象路径名,mkdirs()则根据此抽象路径创建制定的所有目录
createNewFile();根据上一句创建的目录来创建文件
构造函数new File(directory, filename),
package TestPackage;
import java.io.*;
public class TestFile {
public static void main(String[] args) {
String separator = File.separator;
String filename = "myfile.txt";
String directory = "mydir1" + separator + "mydir2";
/*
注意:
上面directory是正规的写法,当然也可以采用String directory = "mydir1/mydir2";
这个在跨平台下都可以正常编译
同时也可以用String directory = "mydir1\\mydir2";这个只能在windows下使用
* */
File f = new File(directory, filename);
if (f.exists()) {
System.out.println("文件名:" + f.getAbsolutePath());
System.out.println("文件大小:" + f.length());
} else {
f.getParentFile().mkdirs();//注意 getParentFile()取的是package文件夹的上层路径
try {
f.createNewFile(); //注意createNewFile()会抛IOException,所以要try catch
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
第二个例子,用迭代法创建目录
package TestPackage;
import java.io.File;
public class FileList {
/**
* @param args
*/
public static void main(String[] args) {
File f=new File("k:/A");
System.out.println(f.getName());//getName()获取文件名,即A
tree(f, 1);
}
private static void tree(File f,int level){
String preStr="";
for (int i = 0; i < level; i++) {
preStr+=" ";
}
File [] childs=f.listFiles();//列出当前file下的文件(只列一层)
for (int i = 0; i < childs.length; i++) {
System.out.println(preStr+childs[i].getName());
if (childs[i].isDirectory()){//判断此文件是否是个目录,即底下是否还有文件
tree(childs[i],level+1);
}
}
}
}