2021-06-02Java中File使用--创建文件、父子目录

	呼~一天的日子又过去了,都是在忙安防的项目,毕竟请假了一月多,该自己干的还是要干,说正事。
    今天项目里面涉及到图片的移动,实现起来就是复制吧。

但是有一个奇怪的点D:/data/pic\xx.jpg和D:/data/pic\xx.jpg居然显示不了,先跳过。
主要是图片生成到新目录这一步有些坑需要记录一下:

错误示范1

输出的是创建文件夹 D:\filepath\test\test.txt。

public class FileTest {
    public static void main(String[] args) throws IOException {
        String fileName = "test.txt";
        File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName);
        if (!testFile.exists()) {
            testFile.mkdirs();// 能创建多级目录
        }
        System.out.println("testFile:"+testFile);
    }
}

在这里插入图片描述

错误示范2

如果 D:\filepath\test\ 文件夹不存在,会报错。

public class FileTest {
    public static void main(String[] args) throws IOException {
        String fileName = "test.txt";
        File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName);
        if (!testFile.exists()) {
            testFile.createNewFile();// 能创建多级目录
        }
        System.out.println("testFile:"+testFile);
    }
}

在这里插入图片描述

实现在多重目录下创建文件:话不多说上正确代码:

import sun.net.ftp.FtpClient;
//import com.zte.ums.cnms.pm.load.enums.MppFileDirEnum;
import java.io.File;
import java.io.IOException;
 
public class FileTest {
    public static void main(String[] args) throws IOException {
        String fileName = "test.txt";
        System.out.println("File.separator:" + File.separator);
        File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName);
        File fileParent = testFile.getParentFile();//返回的是File类型,可以调用exsit()等方法 
        String fileParentPath = testFile.getParent();//返回的是String类型
        System.out.println("fileParent:" + fileParent);
        System.out.println("fileParentPath:" + fileParentPath);
        if (!fileParent.exists()) {
            fileParent.mkdirs();// 能创建多级目录
        }
        if (!testFile.exists())
            testFile.createNewFile();//有路径才能创建文件
        System.out.println(testFile);
 
        String path = testFile.getPath();
        String absolutePath = testFile.getAbsolutePath();//得到文件/文件夹的绝对路径
        String getFileName = testFile.getName();//得到文件/文件夹的名字
        System.out.println("path:"+path);
        System.out.println("absolutePath:"+absolutePath);
        System.out.println("getFileName:"+getFileName);
    }
}File.separator:\
fileParent:D:\filepath\test
fileParentPath:D:\filepath\test
D:\filepath\test\test.txt
path:D:\filepath\test\test.txt
absolutePath:D:\filepath\test\test.txt
getFileName:test.txt

File类的常见方法

1.创建。

boolean createNewFile(); //创建文件
boolean mkdir();创建文件夹
boolean mkdirs();创建多级文件夹。

2.删除。

boolean delete();
void deleteOnExit();在程序退出时删除文件。

3.判断。

boolean canExcute(); 判断是否可执行
boolean exists(); 文件事是否存在。
isFile();文件
isDirectory();文件夹
isHidden();//java能得到文件中的隐藏文件但是对隐藏文件时不能访问的
isAbsolute();//绝对路径即时不存在也能得到。

4.获取信息。

getName();
getPath();
getParent();

4.三种文件创建方式:

File file = new File(“E:/…”);//文件/文件夹路径对象
File file = new File("…" ,""…);//父目录绝对路径 + 子目录名称
File file = new File("…","…");//父目录File对象 + 子目录名称

file.exists():判断文件/文件夹是否存在
file.delete():删除文件/文件夹
file.isDirectory():判读是否为目录
file.isFile():判读是否为文件夹
file.mkdir():创建文件夹(仅限一级目录)
file.mkdirs():创建多及目录文件夹(包括但不限一级目录)
file.createNewFile():创建文件
file.getAbsolutePath():得到文件/文件夹的绝对路径
file.getName():得到文件/文件夹的名字
file.String():同样是得到文件/文件夹的绝对路径等于file.getAbsolutePath()
file.getParent():得到父目录的绝对路径String 不可以调用可以调用mkdir()方法

file.getParentFile():得到父目录的绝对路径的返回值是File型可以调用mkdir()方法

String[] gdir.list():得到目录的子目录\文件的名称(不是绝对路径)
File[] dir.listFiles():得到目录的子目录\文件事是否存在。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值