`
devexception
  • 浏览: 19165 次
社区版块
存档分类
最新评论

linux目录下的一级子目录过多,导致创建目录失败(java file mkdirs)

阅读更多
一个跑了几年的java程序,最近突然不能运行了。只要一调用就报java.io.FileNotFoundException、java.lang.NullPointerException异常
仔细查看源代码,发现在新建输出流前,就调用了创建目录的代码mkdirs().
左思右想不得其果,这套程序在本地运行都是正常的。。。
感觉应该是环境的原因,生产环境是linux的,初步分析是不是磁盘满了,用命令df -h / 查看一下,发现还有很多磁盘空间可以使用。
看来不是这个原因导致的
再进入程序操作文件的目录,使用linux命令mkdir ,未创建成功,提示信息如下:
mkdir: cannot create directory `devexception': Too many links

发现这个目录下已经生成了好多子目录,用ls命令查看,发现一直在刷屏,完全展示不下。
换一个命令查看:
find 。/devexception -type d | wc -l
显示:31999
查下资料,发现这个数字已经达到了linux下某个文件夹下的子目录数的上限。怪不得调用类java.io.File的mkdirs()方法了也没创建目录

为了规避这个异常,一般都是让某个文件夹下的目录不会跟着时间的推移而无限制的上涨,有个常用的方法就是在这个目录下新建以年月日为单位的目录
如./2014/07/02,这样这个目录的子目录会分配到具体某一天的目录下,某一天的数据也会放到这一天所在目录下,随着时间的推移,某个子目录也不会
一直递增。从而突破linux系统的限制。
参考:http://www.devexception.com/j2se/545904.htm
2
2
分享到:
评论
7 楼 devexception 2014-07-04  
smallratluobin 写道
细节的问题都值得研究

嗯,是啊
6 楼 smallratluobin 2014-07-03  
细节的问题都值得研究
5 楼 devexception 2014-07-03  
lz958942 写道
真心有用啊


确实感觉挺有用的哈
4 楼 devexception 2014-07-03  
david_je 写道
为什么不考虑备份?

考虑备份是指?可以说得详细点吗?
3 楼 david_je 2014-07-03  
为什么不考虑备份?
2 楼 lz958942 2014-07-03  
真心有用啊
1 楼 cdhvs911 2014-07-02  
好详细啊,解决了一个疑惑我好久的问题。

相关推荐

    new file()创建不出文件 解决 Android无法创建File问题

    Android 无法创建File文件 ,在上传图片的时候报错,提示file文件夹未空或在手机清空缓存删除文件夹后 文件夹无法创建 使用file.mkdirs()方法 返回一直是false 提供的功法可以直接解决该问题

    3Java SE(下).doc

    ---->在当前项目根目录下创建一个名为demo.txt的文件 若是在当前目录下,"./"是可以忽略不写的 File file = new File("demo.txt"); //若该文件不存在则创建 if(!file.exists()){ //创建新文件 ...

    java压缩文件源码--ZipUtils

    new File(rootDir+file.separator+path).mkdirs(); log("entry:"+entryName.substring(0, index)); } else{ new File(rootDir).mkdirs(); log("entry:"+entryName); } return entryName; ...

    java算法,实现压缩及解压缩

     //会把目录作为一个file读出一次,所以只建立目录就可以,之下的文件还会被迭代到。  if (entry.isDirectory())  {  new File(filePath + entry.getName()).mkdirs();  continue;  }  ...

    PyPI 官网下载 | mkdirs-0.0.3a.linux-x86_64.tar.gz

    资源来自pypi官网。 资源全名:mkdirs-0.0.3a.linux-x86_64.tar.gz

    Java生成二维码

    Java生成二维码 Hashtable, Object> hints = new Hashtable, Object>(); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); BitMatrix byteMatrix; try { byteMatrix = new ...

    siwi-mkdirs:创建多级目录

    西维·姆克迪斯介绍创建多级目录安装使用npm npm install siwi-mkdirs用纱yarn add siwi-mkdirs测试需要安装mocha chai npm run test

    java上传文件实例

    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> ;charset=gb2312" language="java" import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,...

    IO输入输出留

    listFiles() 返回 File[],包含子文件、子目录的 File 对象 list(FilenameFilter) listFiles(FilenameFilter) listFiles(FileFilter) 只列出符合过滤条件的文件、目录...

    图片文件上次,获取图片文件实际类型

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java....

    java文件复制

    文字复制的java代码 public class file { public void copyFolder(String oldPath, String newPath) { try { (new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹 File a=new File(oldPath); ...

    Java程序设计(第二版)大纲、考试模拟试题及答案

    file1.mkdirs(); File file2=new File(file1,"1.txt"); file2.createNewFile(); String s="I like java."; byte[] b=s.getBytes(); FileOutputStream out=new FileOutputStream(file2); out.write(b); ...

    对python中的 os.mkdir和os.mkdirs详解

    在Python中可以使用os.mkdir()函数创建目录(创建一级目录)。 其原型如下所示: os.mkdir(path) 其参数path 为要创建目录的路径。 例如要在D盘下创建hello的目录 >>> import os >>> os.mkdir('d:\hello') 可以...

    org.apache.tools.zip解决解压乱码问题

    * @param targetPath 解压缩到的位置,如果为null或空字符串则默认解压缩到跟zip包同目录跟zip包同名的文件夹下 * void */ public static void unzip(String zipFilePath, String targetPath) throws ...

    java生成二维码+邮箱验证+Base64加密

    二维码创建工具类,当文件夹不存在时,mkdirs会自动创建多层目录,区别于mkdir.(mkdir如果父目录不存在则会抛出异常)

    I001-hadoophdfs-mkdirs.7z

    I001-hadoophdfs-mkdirs.7z

    Android代码-FileDownloaderFinal

    一个Android文件下载管理库,具有扩展性强、简单易用的特性。是基于FileDownloader强大的下载引擎。 如何使用 1、下载FileDownloaderFinal 通过Gradle抓取: compile 'cn.finalteam:filedownloaderfinal:1.0.7' ...

    java缩略图

    import java.io.File; import java.io.IOException; public class Test { public static void main(String[] args) { long start = System.currentTimeMillis(); try { ImageUtil.resizeFix(new File("D:\\...

    andriod开发 读写文件

    file.mkdirs(); } catch (Exception e) { // TODO: handle exception } } File dir = new File(filenameTemp); if (!dir.exists()) { try { //在指定的文件夹中创建文件 dir....

Global site tag (gtag.js) - Google Analytics