2016-04-01 2 views
1

私はプログラムの冒頭に作られたdirにいくつかのファイルを保存するためのマップを作ろうとしています。しかし、Windowsではディレクトリが決して作られないので、まだ問題があります。そして私は解決策を見つけることができません。同じコードはUnixシステムでは機能しますが、Windowsシステムでは機能しません。Javaファイルmkdirはfalseの結果を返します

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用OKでした。

詳細を私が書くことができれば、私もチェックし、それが戻って本当与えたが、それはまだあなたは:(コロン)でフォルダやファイル名を作成することはできませんtestRun

答えて

7

dirをすることはありません は、Microsoftのリソースについては、以下の文字は、Windowsで予約されており、フォルダやファイル名を作成するために使用することはできません。

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

参考:

関連する問題