为什么File文件调用delete方法返回false

为什么File文件调用delete方法返回false?

因为该文件路径有IO流在占用,想必是没有规范关闭IO流引起。

private static boolean deleteFile(File file){
   File[] files = file.listFiles();
   for(File deleteFile : files){
      if(deleteFile.isDirectory()){
         //如果是文件夹,则递归删除下面的文件后再删除该文件夹
         if(!deleteFile(deleteFile)){
            //如果失败则返回
            return false;
         }
      } else {
         if(!deleteFile.delete()){
            //(一直失败)如果失败则返回
            return false;
         }
      }
   }
   return file.delete();
}
/**
    *  将本地文件上传至fastdfs服务器
    */
    public static FDSFileWrapper uploadFile(String savePath,String fileName,Map<String,String> metaPairs) throws Exception{
    	FileInputStream fis = new FileInputStream(new File(savePath + File.separator + fileName));
		byte[] bytes = new byte[fis.available()];
		fis.read(bytes);
    	List<NameValuePair> metas = new ArrayList<NameValuePair>();
		metas.add(new NameValuePair("fileName",fileName));
		if(metaPairs != null && !metaPairs.isEmpty()) {
			for(Entry<String, String> entry:metaPairs.entrySet()) {
				NameValuePair pair = new NameValuePair(entry.getKey(), entry.getValue());
				metas.add(pair);
			}
		}
		String extName = fileName.substring(fileName.lastIndexOf(".") + 1);
		FDSGlobalConfig fdsConfig = new FDSGlobalConfig();
		fdsConfig = applicationContext.getBean(FDSGlobalConfig.class);
		StorageClientWithGroup client = new StorageClientWithGroup(fdsConfig);
		String indexName = client.uploadFileExt(fdsConfig.getGroupName(), bytes, extName, metas.toArray(new NameValuePair[metas.size()]));
		FDSFileWrapper wrapper = new FDSFileWrapper();
		wrapper.setHttpUrl(fdsConfig.getOpenHttpUrl() + indexName);
		wrapper.setIndexName(indexName);
		wrapper.setOrginalName(fileName);
        //	下面忘记关闭了,补上
		if (fis != null) {
			fis.close();
		}
		return wrapper;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈镇坤27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值