文件类常用小工具

递归扫描指定路径下的所有文件

	/**
	 * 指定路径下多有文件
	 */
	public static ArrayList<File> getAllFile(String fileUrl) {
		File dirFile = new File(fileUrl);
		// 如果文件夹不存在或着不是文件夹,则返回 null
		if (!dirFile.exists() || dirFile.isFile())
			return null;

		File[] childrenFiles = dirFile.listFiles();
		if (Objects.isNull(childrenFiles) || childrenFiles.length == 0)
			return null;

		ArrayList<File> files = new ArrayList<>();
		for (File childFile : childrenFiles) {
			// 如果是文件,直接添加到结果集合
			if (childFile.isFile()) {
				files.add(childFile);
			}
			//以下几行代码取消注释后可以将所有子文件夹里的文件也获取到列表里
			else {
				// 如果是文件夹,则将其内部文件添加进结果集合
				ArrayList<File> cFiles = getAllFile(String.valueOf(childFile));
				if (Objects.isNull(cFiles) || cFiles.isEmpty()) continue;
				files.addAll(cFiles);
			}
		}
		return files;
	}


		/**
	 * main方法测试
	 * */
	public static void main(String[] args) {
		String path = "C:\\Users\\PinkFace\\Desktop\\测试数据";
		ArrayList<File> fileType = getAllFile(path);
		System.out.println(fileType);
	}

 拿到文件后缀


	/**
	 * 文件后缀
	 */
	public static String getFileType(String fileName) {
		int index = fileName.lastIndexOf(".");
		String extension = fileName.substring(/**/index + 1);
		return extension;
	}


    //常见文件后缀
	String[] imgType = {"bmp", "jpg", "png", "ticf", "gif", "pcx", "tga", "exif", "fpx", "svg", "psd", "cdr", "pcd", "dxf", "ufo", "eps", "ai", "raw", "WMF", "webp", "avif", "apng"};
		String[] ysType = {"Rar", "zip", "7z", "CAB", "ARJ", "LZH", "TAR", "GZ", "ACE", "UUE", "BZJAR", "ISO", "MPQ", "jpg", "rmvb"};

字符串分割

	/**
	 * 字符串分割,转list
	 */
	public static List<String> stringsSplit(String fuJianName) {
		if (fuJianName.contains(",")) {
			String[] split = fuJianName.split(",");
			return Arrays.asList(split);
		}
		List<String> strings = new ArrayList<>();
		strings.add(fuJianName);
		return strings;
	}

 

上传文件 转base64后直接返回base64
    /**
     * 上传文件 转base64
     */
    @PostMapping(value = "makePhoto.do")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "上传文件,返回base64")
    public String encodeBase64File(MultipartFile file) throws Exception {
        InputStream fileInputStream = file.getInputStream();
        byte[] bytes = new byte[fileInputStream.available()];
        // 读取到 byte 里面
        fileInputStream.read(bytes);
        fileInputStream.close();
        BASE64Encoder base64Encoder = new BASE64Encoder();
        // 得到文件 之后转成beye 然后使用base64转码
        return base64Encoder.encode(bytes);
    }

上传文件到指定本地文件夹
    @PostMapping("/uploadile")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "上传文件,返回文件地址")
    public Rsp uploadiles(MultipartFile file) {
        //file是一个临时文件,请求结束后自动删除
        //获取原始文件名
        String originalFilename = file.getOriginalFilename();
        //取文件名的后缀
        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
        //使用uuid生成文件名,防止重复导致覆盖
        // String fileName = UUID.randomUUID().toString()+substring;
        String basePath = System.getProperty("user.dir") + File.separator + "materialPicture\\";
        //创建一个目录对象
        File dir = new File(basePath);
        //判断目录是否存在
        if (!dir.exists()) {
            //目录不存在,则先创建
            dir.mkdirs();
        }
        try {
            //将临时文件转存到指定位置
            file.transferTo(new File(basePath + originalFilename));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return Rsp.success(basePath + originalFilename);
    }

指定文件夹里的图片文件转base64

    public static String convertToBase64(String imagePath) throws IOException {
        File file = new File(imagePath);
        try (FileInputStream fis = new FileInputStream(file);
             ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = fis.read(buffer)) != -1) {
                bos.write(buffer, 0, bytesRead);
            }
            byte[] imageBytes = bos.toByteArray();
            String s = Base64.getEncoder().encodeToString(imageBytes);
            if (s != null && !s.isEmpty()) {
                //转换成功删除图片
                FileUtils.deleteQuietly(new File(imagePath));
            }
            return s;
        }
    }

 指定文件夹里的所有文件

    public static ArrayList<String> getFiles(String path) {
        ArrayList<String> strings = new ArrayList<>();
        File folder = new File(path);
        File[] files = folder.listFiles();
        assert files != null;
        for (File file : files) {
            if (file.isFile()) {
                strings.add(file.getPath());
            }
        }
        return strings;
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值