首页 文章

无法连接mkdir()JavaFX的日期和文件名

提问于
浏览
0

当我连接Date和用于创建新目录的文件名时,我遇到了问题 .

如果我PATH.concat(电影)它创建一个目录,但如果我连接名称(电影名称与日期)“它说创建!”但它并没有创造任何直接的东西 .

FileChooser fileChooser = new FileChooser();

    FileChooser.ExtensionFilter filter = new FileChooser.ExtensionFilter("Select a File ('.mp4')", "*.mp4");
            fileChooser.getExtensionFilters().add(filter);
            File file = fileChooser.showOpenDialog(null);
            String movie = file.getName();
            filePath = file.toURI().toString();

            String s;
            Format formatter;
            Date date = new Date();

            formatter = new SimpleDateFormat("MM/dd/YYYY");
            s = formatter.format(date);

            String PATH = "C:\\FINALDATA\\";
            String name = movie+"("+s+")";

            String folderName = PATH.concat(name);

    File fileName = new File(folderName);       

    if(!fileName.exists()){
        boolean result = fileName.mkdir();
                    System.out.print("Created!");
            }else{
                System.out.print("Error!");
            }

2 回答

  • 2

    您的日期格式在此处创建了问题 . 您无法使用 '/' 创建文件夹或文件名 . 我认为你最好将日期格式更改为 MM-dd-yyyy 并尝试 .

  • 1

    java.time

    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("MM-dd-uuuu");
        String s = LocalDate.now(ZoneId.of("Europe/Bratislava")).format(dateFormatter);
    

    这会给你一个字符串 s 之类的

    12-09-2018

    正如UVM已经说过的那样,正斜杠 / 是Windows上文件名中的禁用字符(以及其他常见操作系统上的反斜杠 \ 和冒号 : ) .

    您可能希望更进一步,并使用ISO 8601格式作为您的日期 . 然后按字母顺序排序也是按时间顺序排列的 .

    String s = LocalDate.now(ZoneId.of("Europe/Bratislava")).toString();
    

    2018-12-09

    不要使用 DateSimpleDateFormat . 这些课程有设计问题 . 根据我的经验,后者往往很麻烦 . 这些课程也很久了 . java.time是现代Java日期和时间API,使用起来非常好 .

    Link: Oracle tutorial: Date Time解释如何使用 java.time .

相关问题