问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 如何在当前文件下 创建目录,

发布网友 发布时间:2022-05-03 09:44

我来回答

2个回答

热心网友 时间:2023-10-19 17:43

public static void main(String args[]) {
File directory = new File(".");
String path = null;
try {
path = directory.getCanonicalPath();//获取当前路径
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();

path +="\\Test";
File file =new File(path);  
System.out.println(path);
//如果文件夹不存在则创建  
if  (!file .exists()  && !file .isDirectory())    
{     
    System.out.println("//不存在");
    file .mkdir();  
} else 
{
    System.out.println("//目录存在");
}
}

上面代码已经完成了提问要求,注释写的也比较详细。下面拓展一下这个问题。

首先来看下java获取当前路径的几种方法:

1、利用System.getProperty()函数获取当前路径: 
System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 

2、使用File提供的函数获取当前路径: 
File directory = new File("");//设定为当前文件夹 
try{ 
    System.out.println(directory.getCanonicalPath());//获取标准的路径 
    System.out.println(directory.getAbsolutePath());//获取绝对路径 
}catch(Exceptin e){} 

File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。 

# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹 
# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径 
# 至于getPath()函数,得到的只是你在new File()时设定的路径 

比如当前的路径为 C:/test : 
File directory = new File("abc"); 
directory.getCanonicalPath(); //得到的是C:/test/abc 
directory.getAbsolutePath();    //得到的是C:/test/abc 
direcotry.getPath();                    //得到的是abc 

File directory = new File("."); 
directory.getCanonicalPath(); //得到的是C:/test 
directory.getAbsolutePath();    //得到的是C:/test/. 
direcotry.getPath();                    //得到的是. 

File directory = new File(".."); 
directory.getCanonicalPath(); //得到的是C:/ 
directory.getAbsolutePath();    //得到的是C:/test/.. 
direcotry.getPath();                    //得到的是.. 



再来看下创建目录的几种方法:

    1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败

    2、File类的mkdir方法根据抽象路径创建目录

    3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录

    4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。

    5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败

示例代码:

package book.io;
 
import java.io.File;
import java.io.IOException;
 
public class CreateFileUtil {
    
    public static boolean createFile(String destFileName) {
        File file = new File(destFileName);
        if(file.exists()) {
            System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
            return false;
        }
        if (destFileName.endsWith(File.separator)) {
            System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!");
            return false;
        }
        //判断目标文件所在的目录是否存在
        if(!file.getParentFile().exists()) {
            //如果目标文件所在的目录不存在,则创建父目录
            System.out.println("目标文件所在目录不存在,准备创建它!");
            if(!file.getParentFile().mkdirs()) {
                System.out.println("创建目标文件所在目录失败!");
                return false;
            }
        }
        //创建目标文件
        try {
            if (file.createNewFile()) {
                System.out.println("创建单个文件" + destFileName + "成功!");
                return true;
            } else {
                System.out.println("创建单个文件" + destFileName + "失败!");
                return false;
            }
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("创建单个文件" + destFileName + "失败!" + e.getMessage());
            return false;
        }
    }
    
    
    public static boolean createDir(String destDirName) {
        File dir = new File(destDirName);
        if (dir.exists()) {
            System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");
            return false;
        }
        if (!destDirName.endsWith(File.separator)) {
            destDirName = destDirName + File.separator;
        }
        //创建目录
        if (dir.mkdirs()) {
            System.out.println("创建目录" + destDirName + "成功!");
            return true;
        } else {
            System.out.println("创建目录" + destDirName + "失败!");
            return false;
        }
    }
    
    
    public static String createTempFile(String prefix, String suffix, String dirName) {
        File tempFile = null;
        if (dirName == null) {
            try{
                //在默认文件夹下创建临时文件
                tempFile = File.createTempFile(prefix, suffix);
                //返回临时文件的路径
                return tempFile.getCanonicalPath();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("创建临时文件失败!" + e.getMessage());
                return null;
            }
        } else {
            File dir = new File(dirName);
            //如果临时文件所在目录不存在,首先创建
            if (!dir.exists()) {
                if (!CreateFileUtil.createDir(dirName)) {
                    System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
                    return null;
                }
            }
            try {
                //在指定目录下创建临时文件
                tempFile = File.createTempFile(prefix, suffix, dir);
                return tempFile.getCanonicalPath();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("创建临时文件失败!" + e.getMessage());
                return null;
            }
        }
    }
    
    public static void main(String[] args) {
        //创建目录
        String dirName = "D:/work/temp/temp0/temp1";
        CreateFileUtil.createDir(dirName);
        //创建文件
        String fileName = dirName + "/temp2/tempFile.txt";
        CreateFileUtil.createFile(fileName);
        //创建临时文件
        String prefix = "temp";
        String suffix = ".txt";
        for (int i = 0; i < 10; i++) {
            System.out.println("创建了临时文件:"
                    + CreateFileUtil.createTempFile(prefix, suffix, dirName));
        }
        //在默认目录下创建临时文件
        for (int i = 0; i < 10; i++) {
            System.out.println("在默认目录下创建了临时文件:"
                    + CreateFileUtil.createTempFile(prefix, suffix, null));
        }
    }
 
}

热心网友 时间:2023-10-19 17:44

可以直接创建文件时用相对路径,如:
File dir = new File("aaa/bbb");
dir.mkdirs();
这样创建的目录就是在当前目录下。

如果要指定绝对路径可以获取当前class文件的路径:
test.class.getResource("").getPath();来自:求助得到的回答

热心网友 时间:2023-10-19 17:43

public static void main(String args[]) {
File directory = new File(".");
String path = null;
try {
path = directory.getCanonicalPath();//获取当前路径
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();

path +="\\Test";
File file =new File(path);  
System.out.println(path);
//如果文件夹不存在则创建  
if  (!file .exists()  && !file .isDirectory())    
{     
    System.out.println("//不存在");
    file .mkdir();  
} else 
{
    System.out.println("//目录存在");
}
}

上面代码已经完成了提问要求,注释写的也比较详细。下面拓展一下这个问题。

首先来看下java获取当前路径的几种方法:

1、利用System.getProperty()函数获取当前路径: 
System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 

2、使用File提供的函数获取当前路径: 
File directory = new File("");//设定为当前文件夹 
try{ 
    System.out.println(directory.getCanonicalPath());//获取标准的路径 
    System.out.println(directory.getAbsolutePath());//获取绝对路径 
}catch(Exceptin e){} 

File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。 

# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹 
# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径 
# 至于getPath()函数,得到的只是你在new File()时设定的路径 

比如当前的路径为 C:/test : 
File directory = new File("abc"); 
directory.getCanonicalPath(); //得到的是C:/test/abc 
directory.getAbsolutePath();    //得到的是C:/test/abc 
direcotry.getPath();                    //得到的是abc 

File directory = new File("."); 
directory.getCanonicalPath(); //得到的是C:/test 
directory.getAbsolutePath();    //得到的是C:/test/. 
direcotry.getPath();                    //得到的是. 

File directory = new File(".."); 
directory.getCanonicalPath(); //得到的是C:/ 
directory.getAbsolutePath();    //得到的是C:/test/.. 
direcotry.getPath();                    //得到的是.. 



再来看下创建目录的几种方法:

    1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败

    2、File类的mkdir方法根据抽象路径创建目录

    3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录

    4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。

    5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败

示例代码:

package book.io;
 
import java.io.File;
import java.io.IOException;
 
public class CreateFileUtil {
    
    public static boolean createFile(String destFileName) {
        File file = new File(destFileName);
        if(file.exists()) {
            System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
            return false;
        }
        if (destFileName.endsWith(File.separator)) {
            System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!");
            return false;
        }
        //判断目标文件所在的目录是否存在
        if(!file.getParentFile().exists()) {
            //如果目标文件所在的目录不存在,则创建父目录
            System.out.println("目标文件所在目录不存在,准备创建它!");
            if(!file.getParentFile().mkdirs()) {
                System.out.println("创建目标文件所在目录失败!");
                return false;
            }
        }
        //创建目标文件
        try {
            if (file.createNewFile()) {
                System.out.println("创建单个文件" + destFileName + "成功!");
                return true;
            } else {
                System.out.println("创建单个文件" + destFileName + "失败!");
                return false;
            }
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("创建单个文件" + destFileName + "失败!" + e.getMessage());
            return false;
        }
    }
    
    
    public static boolean createDir(String destDirName) {
        File dir = new File(destDirName);
        if (dir.exists()) {
            System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");
            return false;
        }
        if (!destDirName.endsWith(File.separator)) {
            destDirName = destDirName + File.separator;
        }
        //创建目录
        if (dir.mkdirs()) {
            System.out.println("创建目录" + destDirName + "成功!");
            return true;
        } else {
            System.out.println("创建目录" + destDirName + "失败!");
            return false;
        }
    }
    
    
    public static String createTempFile(String prefix, String suffix, String dirName) {
        File tempFile = null;
        if (dirName == null) {
            try{
                //在默认文件夹下创建临时文件
                tempFile = File.createTempFile(prefix, suffix);
                //返回临时文件的路径
                return tempFile.getCanonicalPath();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("创建临时文件失败!" + e.getMessage());
                return null;
            }
        } else {
            File dir = new File(dirName);
            //如果临时文件所在目录不存在,首先创建
            if (!dir.exists()) {
                if (!CreateFileUtil.createDir(dirName)) {
                    System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
                    return null;
                }
            }
            try {
                //在指定目录下创建临时文件
                tempFile = File.createTempFile(prefix, suffix, dir);
                return tempFile.getCanonicalPath();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("创建临时文件失败!" + e.getMessage());
                return null;
            }
        }
    }
    
    public static void main(String[] args) {
        //创建目录
        String dirName = "D:/work/temp/temp0/temp1";
        CreateFileUtil.createDir(dirName);
        //创建文件
        String fileName = dirName + "/temp2/tempFile.txt";
        CreateFileUtil.createFile(fileName);
        //创建临时文件
        String prefix = "temp";
        String suffix = ".txt";
        for (int i = 0; i < 10; i++) {
            System.out.println("创建了临时文件:"
                    + CreateFileUtil.createTempFile(prefix, suffix, dirName));
        }
        //在默认目录下创建临时文件
        for (int i = 0; i < 10; i++) {
            System.out.println("在默认目录下创建了临时文件:"
                    + CreateFileUtil.createTempFile(prefix, suffix, null));
        }
    }
 
}

热心网友 时间:2023-10-19 17:44

可以直接创建文件时用相对路径,如:
File dir = new File("aaa/bbb");
dir.mkdirs();
这样创建的目录就是在当前目录下。

如果要指定绝对路径可以获取当前class文件的路径:
test.class.getResource("").getPath();来自:求助得到的回答

热心网友 时间:2023-10-19 17:43

public static void main(String args[]) {
File directory = new File(".");
String path = null;
try {
path = directory.getCanonicalPath();//获取当前路径
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();

path +="\\Test";
File file =new File(path);  
System.out.println(path);
//如果文件夹不存在则创建  
if  (!file .exists()  && !file .isDirectory())    
{     
    System.out.println("//不存在");
    file .mkdir();  
} else 
{
    System.out.println("//目录存在");
}
}

上面代码已经完成了提问要求,注释写的也比较详细。下面拓展一下这个问题。

首先来看下java获取当前路径的几种方法:

1、利用System.getProperty()函数获取当前路径: 
System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 

2、使用File提供的函数获取当前路径: 
File directory = new File("");//设定为当前文件夹 
try{ 
    System.out.println(directory.getCanonicalPath());//获取标准的路径 
    System.out.println(directory.getAbsolutePath());//获取绝对路径 
}catch(Exceptin e){} 

File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。 

# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹 
# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径 
# 至于getPath()函数,得到的只是你在new File()时设定的路径 

比如当前的路径为 C:/test : 
File directory = new File("abc"); 
directory.getCanonicalPath(); //得到的是C:/test/abc 
directory.getAbsolutePath();    //得到的是C:/test/abc 
direcotry.getPath();                    //得到的是abc 

File directory = new File("."); 
directory.getCanonicalPath(); //得到的是C:/test 
directory.getAbsolutePath();    //得到的是C:/test/. 
direcotry.getPath();                    //得到的是. 

File directory = new File(".."); 
directory.getCanonicalPath(); //得到的是C:/ 
directory.getAbsolutePath();    //得到的是C:/test/.. 
direcotry.getPath();                    //得到的是.. 



再来看下创建目录的几种方法:

    1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败

    2、File类的mkdir方法根据抽象路径创建目录

    3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录

    4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。

    5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败

示例代码:

package book.io;
 
import java.io.File;
import java.io.IOException;
 
public class CreateFileUtil {
    
    public static boolean createFile(String destFileName) {
        File file = new File(destFileName);
        if(file.exists()) {
            System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
            return false;
        }
        if (destFileName.endsWith(File.separator)) {
            System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!");
            return false;
        }
        //判断目标文件所在的目录是否存在
        if(!file.getParentFile().exists()) {
            //如果目标文件所在的目录不存在,则创建父目录
            System.out.println("目标文件所在目录不存在,准备创建它!");
            if(!file.getParentFile().mkdirs()) {
                System.out.println("创建目标文件所在目录失败!");
                return false;
            }
        }
        //创建目标文件
        try {
            if (file.createNewFile()) {
                System.out.println("创建单个文件" + destFileName + "成功!");
                return true;
            } else {
                System.out.println("创建单个文件" + destFileName + "失败!");
                return false;
            }
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("创建单个文件" + destFileName + "失败!" + e.getMessage());
            return false;
        }
    }
    
    
    public static boolean createDir(String destDirName) {
        File dir = new File(destDirName);
        if (dir.exists()) {
            System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");
            return false;
        }
        if (!destDirName.endsWith(File.separator)) {
            destDirName = destDirName + File.separator;
        }
        //创建目录
        if (dir.mkdirs()) {
            System.out.println("创建目录" + destDirName + "成功!");
            return true;
        } else {
            System.out.println("创建目录" + destDirName + "失败!");
            return false;
        }
    }
    
    
    public static String createTempFile(String prefix, String suffix, String dirName) {
        File tempFile = null;
        if (dirName == null) {
            try{
                //在默认文件夹下创建临时文件
                tempFile = File.createTempFile(prefix, suffix);
                //返回临时文件的路径
                return tempFile.getCanonicalPath();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("创建临时文件失败!" + e.getMessage());
                return null;
            }
        } else {
            File dir = new File(dirName);
            //如果临时文件所在目录不存在,首先创建
            if (!dir.exists()) {
                if (!CreateFileUtil.createDir(dirName)) {
                    System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
                    return null;
                }
            }
            try {
                //在指定目录下创建临时文件
                tempFile = File.createTempFile(prefix, suffix, dir);
                return tempFile.getCanonicalPath();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("创建临时文件失败!" + e.getMessage());
                return null;
            }
        }
    }
    
    public static void main(String[] args) {
        //创建目录
        String dirName = "D:/work/temp/temp0/temp1";
        CreateFileUtil.createDir(dirName);
        //创建文件
        String fileName = dirName + "/temp2/tempFile.txt";
        CreateFileUtil.createFile(fileName);
        //创建临时文件
        String prefix = "temp";
        String suffix = ".txt";
        for (int i = 0; i < 10; i++) {
            System.out.println("创建了临时文件:"
                    + CreateFileUtil.createTempFile(prefix, suffix, dirName));
        }
        //在默认目录下创建临时文件
        for (int i = 0; i < 10; i++) {
            System.out.println("在默认目录下创建了临时文件:"
                    + CreateFileUtil.createTempFile(prefix, suffix, null));
        }
    }
 
}

热心网友 时间:2023-10-19 17:44

可以直接创建文件时用相对路径,如:
File dir = new File("aaa/bbb");
dir.mkdirs();
这样创建的目录就是在当前目录下。

如果要指定绝对路径可以获取当前class文件的路径:
test.class.getResource("").getPath();来自:求助得到的回答
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
宣称窗帘可“空气净化”,宜家被罚172.5万,此前还收到过哪些罚单?_百度... 打开CAD2006出现fail to get commcntrcontroller怎么解决 启动cad2006时出现'failtogetcommcntrcontroller"怎么解决啊?是什么... 删除C:\Program Files\AutoCAD2004\WSCommCntrAcCon.arx有什么影响 CAD启动时出现fail to get CommcntrController 怎么解决? 启动cad2006时出现'fail to get commcntrcontroller"怎么解决啊?是什么... ...电脑,买哪种划算啊 ,主要 玩游戏,挂Q偶尔看电影 你们上网都干什么啊 ...我上网主要是浏览网页,挂Q和人人,看视频,电影,电视剧什么的,请问... 天天看播放器是什么格式?我想用平板电脑下载来看电视和电影可以吗?还有... 陕西哪些学校有酒店管理? 在windows7中如何在根目录下创建子目录 广西桂林或者南宁哪里有学酒店管理的中专学校 3 东风天龙雷诺发动机行驶多少公里后要更换机油? 长沙那些学校有酒店管理专业 东风商用车雷诺420发动机用什么机油比较好? 天津有哪些学酒店管理的中专学校是国家承认 东风雷诺发动机用全合成10w-40机油行不行 江西读中专酒店管理专业哪所学校好 国四东风天锦柴油发动机用什么级别的机油最好 中专学历 想学酒店管理 有推荐的院校吗? 大家科雷傲加的什么机油 我想知道上海有酒店管理的中专或职校 东风雷诺科雷傲用什么机油最好,现在想准备换金美孚但是不知道适合不适合 有酒店管理这个专业的中专学校有哪些? 谁知道南宁酒店管理的中专学校? 雷诺科雷嘉用什么标号机油,科雷嘉机油加多少升 一般的中专学校都有什么专业?有酒店管理这个专业吗?具体酒店管理学哪些东西? 东风天龙雷诺的机器换什么机油好 河北省那些中专、大专院校开设酒店管理专业? 东风天龙雷诺375机油尺怎么看 旅游 酒店管理中专学校哪所好。? 雷诺420发动机烧机油是怎么回事? 怎样在u盘根目录下建立kED目录 什么样的女生容易激起男生的保护欲? 能够引起男人的保护欲,让男人心疼的女人,究竟有哪些特质呢? 怎样才能激起男生的保护欲 关于小猪的词语 形容“小猪”的词语有哪些? 梦见家里添了男婴有什么征兆 形容小猪的词有哪些 梦见家里有二个可怜男婴 赞美猪的词语和语句有哪些? 请求解梦高手解梦,谢谢! 梦到家人生了3个男婴 形容小猪的词语 古汉语中的小猪和大猪为什么会用豚和彘两个字区分开来表示 ()小猪,填量词 梦见家里有个男婴,很乖不哭 怎么折玫瑰花,用海绵纸