2016-04-01 3 views
1

Итак, я пытаюсь создать карту для хранения некоторых файлов в файле dir, который создается в начале программы. Но в окнах все еще есть проблема, потому что каталог никогда не создан. И я не могу найти решение. Тот же код отлично работает в системе Unix, но не в системе Windows.Файл Java mkdir дает ложный результат

protected String createScreenshotMap(){ 
     this.dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
     this.date = new Date(); 
     String testMap = this.checkOS(); 
     File fileMap = null; 
     boolean check; 
     try{ 
      if(os.indexOf("win") >= 0){ 
       fileMap = new File(testMap); 
       check = fileMap.canWrite(); 
       System.out.println(check); 
       String path = "C:" + File.separator + "testRun" + 
            File.separator + this.date.toString(); 
       fileMap = new File(path); 
       System.out.println(fileMap.getAbsolutePath()); 
      }else{ 
       fileMap = new File(testMap + this.date.toString() + "/"); 
      } 
      check = fileMap.mkdir(); 
      System.out.println(check); 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
     return testMap; 
    } 

Если я запускаю этот кусок кода я получаю следующие выходные данные

true 
C:\testRun\Fri Apr 01 15:30:47 CEST 2016 
false 

Я также проверил я testRun существует, и это было хорошо для Java. я также проверил, если я мог бы написать, и это дало истинный ответ, но он все равно будет не сделать dir в testRun

ответ

7

Вы не можете создать имя папки или файла с : (двоеточие)

Детали:
что касается ресурсов Microsoft, следующие символы зарезервированы Windows, и не может быть использован для создания папки или файла:

< (less than) 
> (greater than) 
: (colon) 
" (double quote) 
/(forward slash) 
\ (backslash) 
| (vertical bar or pipe) 
? (question mark) 
* (asterisk) 

Ссылка:

Смежные вопросы