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

利用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控制台不返回任何信息,具体运行结果如下图:

时间: 2024-07-29 01:16:36

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

Windows下Java File对象创建文件夹时的一个"坑"

import java.io.File; import java.io.IOException; public class DirCreate { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String dirStr="D:"; File dir=new File(dirStr); System.out.println("====

sls语法:创建file,创建文件夹

http://blog.kukafei520.net/html/2014/942.html /tmp/aaa.txt: file.managed /tmp/salt_test: file.directory: - user: chen - group: chen - mode: 755 - makedirs: True 查询history 添加时间显示出来: /etc/profile: file.append: - text: - export HISTTIMEFORMAT="%F %T `wh

【Java】创建文件夹

Java中创建文件夹使用File类下自带的mkdirs()方法就能够轻松完成了, 本来没有什么好说的,唯一值得注意的是这个mkdirs()能够一次性创建多级目录,无须递归调用.也就是说,我要创建在F盘新建一个文件夹a,然后在这个文件夹a中在创建文件夹s,直接通过File file=new File("f:\\a\\s");指定f:\a\s这个路径,然后直接同过file.mkdirs()方法的调用,Java就会在系统中帮助你完成这两个文件夹的创建, 代码无须写成按照平时操作Windows

Java中Io流操作-File类的常用操作-创建文件,创建文件夹

package com.hxzy.IOSer; import java.io.File;import java.io.IOException; public class Demo03 { public static void main(String[] args)throws Exception{ Gu_1(); Gu_2(); } /* * 2.File对象调用file.mkdirs() * 可以创建多层文件夹 * 这个方法是创建文件夹的 返回的同样是布尔值 * 同样需要File类的构造方法

java用流实现创建文件夹, 文件改名, 文件删除, 文件复制

创建TestFileManager类,在本类中分别创建factFile()方法(遍历文件夹中所有的文件).console()方法(换行).createFolder()方法(创建文件夹). renameFile()方法(改名).deleteFile()方法(删除文件).copyFile()方法(复制文件).showContent()(每一次操作完成重新输出所有文件): package com.maya.hanqi.filemanager; import java.io.BufferedReader

java文件操作 之 创建文件夹路径和新文件

一:问题 java 的如果文件夹路径不存在,先创建:如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加 二:代码实现 package edu.tju.cs; import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.RandomAccessFile; public c

Java创建文件夹、创建文件

1.创建文件夹 /** * 判断文件夹是否存在 * @param myPath */ public static void judeDirExists(File myPath) { if (!myPath.exists()) { myPath.mkdirs();//多级文件夹目录 //myPpath.mkdir();//单级文件夹目录 System.out.println("创建文件夹路径为:"+ myPath.getPath()); } } 2.修改文件夹名称 /** * 通过文件路

PHP如何创建文件夹(mkdir的用法,mkdirs的语法)【转】

(PHPmkdir如何创建多级目录) ?? 在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其它不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?先我抄一段手册上的有关mkdir的描述,如下: 说明 bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] ) 尝试新建一个由 pathname 指定的目录

Java 判断文件夹、文件是否存在、否则创建文件夹

1.判断文件是否存在,不存在创建文件 File file=new File("C:\\Users\\QPING\\Desktop\\JavaScript\\2.htm"); if(!file.exists()) { try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 2.判断文件夹是否存在,不存在创建文件夹 Fi