获取文件的一些信息
public static void main(String[] args) throws IOException {
if (file.exists()){
System.out.println("文件是否能执行"+file.canExecute());
System.out.println("文件是否可读"+file.canRead());
System.out.println("文件是否可写"+file.canWrite());
System.out.println("文件的绝对路径"+file.getAbsolutePath());
System.out.println("文件的名称"+file.getName());
System.out.println("当前路径是否为文件夹"+file.isDirectory());
System.out.println("当前路径是否为文件"+file.isFile());
System.out.println("最近一次修改时间(毫秒)"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(new Date(file.lastModified())));
System.out.println("当前路径是否为文件"+file.isFile());
}else {
System.out.println("创建文件"+file.createNewFile());
}
}
)
获取文件长度(大小)
byte
public class Test {
private static final File file = new File("d:"+File.separator+"file1"+File.separator+"file2"
+File.separator+"platform_admin.sql");
//只执行一次父路径判断
static {
File parentFile = file.getParentFile();
if (!parentFile.exists()){
file.mkdirs();
}
}
public static void main(String[] args) throws IOException {
if (file.exists()){
System.out.println("文件长度"+file.length());
}else {
System.out.println("创建文件"+file.createNewFile());
}
}
}
获取子目录并列出全部文件
public class Test {
private static final File file = new File("d:"+File.separator);
public static void main(String[] args) throws IOException {
if (file.exists()){
System.out.println("文件"+ Arrays.toString(file.list()));
}else {
System.out.println("创建文件"+file.createNewFile());
}
}
}
结果
文件[$RECYCLE.BIN, app, BaiduNetdiskDownload, Chrome units, Config.Msi, eclipseWorkSpace, file1, frontCode, IdeaProject, Java, JetBrains, maven, msdia80.dll, Music, MyGame, MyProgram, netty-4.0.56.Final, Oracle 11g R2 64位, server, SoapUI-Tutorials, SVN, System Volume Information, tmp, zxDownloads, 壁纸, 英雄时刻]
只列出了当前路径下的文件或文件夹,不存在父路径
public class Test {
private static final File file = new File("d:"+File.separator);
public static void main(String[] args) throws IOException {
if (file.exists()){
System.out.println("文件"+ Arrays.toString(file.listFiles()));
}else {
System.out.println("创建文件"+file.createNewFile());
}
}
}
结果
文件[d:\$RECYCLE.BIN, d:\app, d:\BaiduNetdiskDownload, d:\Chrome units, d:\Config.Msi, d:\eclipseWorkSpace, d:\file1, d:\frontCode, d:\IdeaProject, d:\Java, d:\JetBrains, d:\maven, d:\msdia80.dll, d:\Music, d:\MyGame, d:\MyProgram, d:\netty-4.0.56.Final, d:\Oracle 11g R2 64位, d:\server, d:\SoapUI-Tutorials, d:\SVN, d:\System Volume Information, d:\tmp, d:\zxDownloads, d:\壁纸, d:\英雄时刻]
包含完整的路径信息
注意:因为一个目录下还有可能包含若干级的子目录,因此推荐使用file.listFiles()
使用递归实现路径列出
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator);
listDir(file);
}
private static void listDir(File file){
if (file.isDirectory()){
File[] files = file.listFiles();
//去掉隐藏的文件或文件夹
if (files != null){
//列出目录组成
for (int i = 0; i < files.length; i++) {
listDir(files[i]);
}
}
}
System.out.println(file);
}
}
结果
修改文件名字
public static void main(String[] args) throws IOException {
File oldfile = new File("d:"+File.separator+"test.txt");
File newfile = new File("d:"+File.separator+"test-new.txt");
boolean b = oldfile.renameTo(newfile);
System.out.println("重命名文件"+b);
}