java mkdirs linux_【Java】利用自带的file.mkdirs();创建文件夹与file.mkdirs();的注意事项...

本文详细介绍了如何使用Java的file.mkdirs()方法创建文件夹,强调了文件夹或文件名中不得包含特殊字符,并提供了一个转义方法进行处理。同时指出,当文件夹名包含特殊字符时,mkdirs()方法可能返回false但不会抛出异常,导致创建失败的问题,提醒开发者注意这种潜在错误。
摘要由CSDN通过智能技术生成

利用Java的自带命令file.mkdirs();是可以直接在系统创建文件夹的。

比如在d:\1文件夹下创建一个2的文件夹,则这样写:

import java.io.*;

public class FileMkdirTest {

public static void main(String[] args) {

File file = new File("d:\\1\\2");

//如果d:\1\2这个文件夹不存在,才创建

if (!file.exists()) {

file.mkdirs();

}

}

}

Java把文件夹也视作一个file,

但值得注意的是,在文件夹或文件名中不得含有:两个方向的斜杠\/、冒号:、星号*、问号?、引号"、左右尖括号<>、竖杠|,你要使用这个符号作为文件夹或文件名称,最好把他们转化成全角\/:*?"<>|,可以利用到如下的JAVA函数转化:

public static String fileEncode(String str) {

if (str != null) {

//这里是专为文件写的转义方法,涉及文件操作

return str

.replaceAll("\\\\", "\")

.replaceAll("/", "/")

.replaceAll(":", ":")

.replaceAll("[*]", "*")

.replaceAll("[?]", "?")

.replaceAll("\"", "”")

.replaceAll(":", ":")

.replaceAll("

.replaceAll(">", ">")

.replaceAll("[|]", "|");

} else {

//防止空,搞成空格

return " ";

}

}如果你在新建的文件夹中,中含有\/:*?"<>|,file.mkdirs();只会返回false,不会抛出任何异常,然后不创建文件夹,因此这个错误相当隐蔽。

比如如下的程序:

public class FileMkdirTest {

public static void main(String[] args) {

File file = new File("d:\\1\\|");

if (!file.exists()) {

file.mkdirs();

}

}

}在d:\1中的|文件夹创建失败,但Java控制台不返回任何信息,具体运行结果如下图:

d138295d947c29c643cd782d70f37b8a.gif

原文:http://blog.csdn.net/yongh701/article/details/45056495

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值