2011-07-03 18 views
0

Javaを使用してWindows 7にファイルを作成しようとすると、次の例外が発生します。パスの例は、 "C:/ g-ecx/images-amazon/com/images/G/01/gno/images/orangeBlue/navPackedSprites-US-22。V183711641 .png"です。私がパスでハードコードをしているのであれば動作します。私は2時間頭を叩いていた。だれでも助けることができる。イメージを保存するファイルを作成しようとしていますJava

mkdirは失敗しますが、例外はありませんが、createファイルは例外をスローします。必要に応じて

java.io.IOException: The system cannot find the path specified 
at java.io.WinNTFileSystem.createFileExclusively(Native Method) 
at java.io.File.createNewFile(File.java:883) 
at org.willmanning.mtt.html.processingbehavior.ImageProcessingBehavior.processImage(ImageProcessingBehavior.java:125) 
at org.willmanning.mtt.html.processingbehavior.ImageProcessingBehavior.loadImages(ImageProcessingBehavior.java:99) 
at org.willmanning.mtt.html.processingbehavior.ImageProcessingBehavior.processNodes(ImageProcessingBehavior.java:66) 
at org.willmanning.mtt.html.processingbehavior.ImageProcessingBehavior.processRootNode(ImageProcessingBehavior.java:34) 
at org.willmanning.mtt.html.ParsingFacade.processURL(ParsingFacade.java:38) 
at org.willmanning.mtt.App.main(App.java:45) 



/** 
* 
* @param image 
* @param url 
*/ 
public void processImage(BufferedImage image, URL url) { 

    StringBuilder path = new StringBuilder(); 
    path.append("C:/Users/will/Documents/"); 
    path.append(url.getHost().replace('.', '/')); 
    path.append(url.getFile()); 
    path.replace(path.lastIndexOf("."), path.length(), ".txt"); 

    File file = new File(path.toString()); 

    boolean mkdir = file.mkdir(); 

    boolean isNew = false; 
    try { 
     isNew = file.createNewFile(); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    /* 
    * only create the file if it doesn't exist 
    */ 
    if (isNew) { 
     try { 
      ImageIO.write(image, "jpg", file); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

答えて

3

代わり

boolean mkdir = file.mkdir(); 

mkdirs()

boolean mkdir = file.mkdirs(); 

を使用してみてください全体親パス/ディレクトリが作成されます。

+0

だからそれは動作するように見えたが、今何が起こるか、それであります"navPackedSprites-US-22.V183711641.png"と呼ばれるフォルダ(例のパスから)を作成し、私のcreateFileコールが戻ります偽です。 – Will

+0

だから私はそれが働いている、私はディレクトリとファイルの部分に私のパスをもう一度チョップする必要があります、それはimage.gifがフォルダ名であると仮定します。 – Will

関連する問題