进行获取文件后缀名,获取文件类型,md文件不支持

package cn.piesat.safe.common;

import com.alibaba.fastjson.JSONObject;

import java.io.;
import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.text.SimpleDateFormat;
import java.util.
;

public class FileUtil {
public static void main(String[] args) throws Exception{
File file = new File(“D:\公司入职培训”);
List<Map<String, Object>> result = new ArrayList<>();
filedi(file, result, true,0);
for (Map<String, Object> map : result
) {
System.out.println(JSONObject.toJSONString(map));
}
}

/**
 * 获取目录下的所有文件属性
 * @param file
 * @param result
 * @param status
 */
public static   void filedi(File file, List<Map<String,Object>> result, boolean status, Integer extension)  {

    try {
        File[] files = file.listFiles();
        for (File fileOne : files) {
            Map<String, Object> map = new HashMap<>();
            Integer isDir = fileOne.isFile() ? 1 : 0;
            if (!status && isDir == 1) {
                //如果不需要文件则在此进行返回过滤
                continue;
            }
            List<Map<String, Object>> subdirectory = new ArrayList<>();
            String path = fileOne.getPath();
            map.put("fileName", fileOne.getName());
            map.put("path", fileOne.getPath());
            map.put("fileTime", fileCreateDate(path));
            map.put("isDir", isDir);
            if (isDir==1){
                //1 获取扩展名  0 获取type
                if (extension==0){
                    Path filePath = fileOne.toPath();
                    String mimeType = Files.probeContentType(filePath);
                    System.out.println(mimeType);
                    map.put("fileType", mimeType);
                }else {
                    map.put("fileType",fileOne.getName().substring(fileOne.getName().lastIndexOf(".")+1));
                }
            }
            if (fileOne.isDirectory()) {
                filedi(fileOne, subdirectory, status,extension);
            }
            map.put("subdirectory", subdirectory);
            result.add(map);
        }
    }catch (Exception e){
        e.printStackTrace();
    }
}


/**
 * 获取文件的创建时间
 */
public static String fileCreateDate(String filePath){
    Path path= Paths.get(filePath);
    BasicFileAttributeView basicview= Files.getFileAttributeView(path, BasicFileAttributeView.class, LinkOption.NOFOLLOW_LINKS );
    BasicFileAttributes attr;
    try {
        attr = basicview.readAttributes();
        Date createDate = new Date(attr.creationTime().toMillis());
        String format = format(createDate, "yyyy-MM-dd HH:mm:ss");
        return format;

// return createDate;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

/**
 * 格式化日期
 * - yyyy-MM-dd HH:mm:ss
 *
 * @param date    日期
 * @param pattern 日期格式
 * @return 日期字符串
 */
public static String format(Date date, String pattern) {
    SimpleDateFormat sd = new SimpleDateFormat(pattern);
    return sd.format(date);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值