File类的获取功能:
File file=new File("资源");
getName() 获取文件或文件夹的名称,不包含上级路径。
length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
getAbsolutePath():获取绝对路径
getPath():获取路径
lastModified():获取最后一次的修改时间,毫秒值
list():获取指定目录下的所有文件或者文件目录的名称数组
listFiles():获取指定目录下的所有文件或文件目录构成的数组
目录操作
File file=new File("目录");
创建目录 mkdir()创建一个文件夹。
案例:file.mkdir();
创建目录 mkdirs()创建多级文件夹。
案例:file.mkdirs();
判断这个目录是否存在 sexists()
案例:file.sexists();
判断是否是目录 isDirectory()
案例:file.isDirectory();
读取目录 list()
案例:file.list();
重命名目录 renameTo()
案例:file.renameTo("新目录");
删除目录 delete()
案例:file.delete();
复制目录 Apache Commons IO
案例:FileUtils.copyDirectory(srcDir, destDir);
// 复制文件夹
public static void copyDirectiory(String sourceDir, String targetDir)
throws IOException {
// 新建目标目录
(new File(targetDir)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
// 源文件
File sourceFile=file[i];
// 目标文件
File targetFile=new File(new File(targetDir).getAbsolutePath()+File.separator+file[i].getName());
copyFile(sourceFile,targetFile);
}
if (file[i].isDirectory()) {
// 准备复制的源文件夹
String dir1=sourceDir +File.separator + file[i].getName();
// 准备复制的目标文件夹
String dir2=targetDir + File.separator+ file[i].getName();
copyDirectiory(dir1, dir2);
}
}
}
文件操作
File file=new File("文件路径");
创建文件
案例:file.createNewFile();
判断这个文件是否存在 sexists()
案例:file.sexists();
判断是否是文件 isFile()
案例:file.isFile();
重命名文件 renameTo()
案例:file.renameTo("新文件");
删除文件 delete()
案例:file.delete();
复制文件 Apache Commons IO
案例:FileUtils.copyFile(source, dest);
// 复制文件
public static void copyFile(File sourceFile,File targetFile)
throws IOException{
// 新建文件输入流并对它进行缓冲
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff=new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff=new BufferedOutputStream(output);
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len =inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此缓冲的输出流
outBuff.flush();
//关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
文件权限
方法一:
Runtime.getRuntime().exec("chmod 777 file");
方法二:
file.setExecutable(true);//设置可执行权限
file.setReadable(true);//设置可读权限
file.setWritable(true);//设置可写权限
System.out.println("is execute allow : " + file.canExecute());
System.out.println("is read allow : " + file.canRead());
System.out.println("is write allow : " + file.canWrite());