2011-11-14 70 views
1

在我的Java Spring Web應用程序中,我正在創建一個圖像文件。該文件並獲得一個臨時的名字,後來我嘗試使用其重命名:Java找不到服務器上存在的文件

public void rename(String productFilename){ 

    String newProductFilename = "newfile.jpg"; 
    File input = new File(imageDir + "/products/" + productFilename); 
    File output = new File(imageDir + "/products/" + newProductFilename); 
    Boolean checkRename = input.renameTo(output); 
} 

有關創建臨時文件,我使用的是:

public String generate(){ 
    String productFilename = "filename.jpg"; 
    ImageIO.write(out, imageFileType, new File(imageDir + "/products/" + productFilename)); 
    return productFilename; 
} 

imageDir值是:在/ var /圖像

在整個課程中,imageDir變量都設置爲絕對路徑。奇怪的是,這一切都在Windows上很好,但在Linux上運行時,我得到了一個FileNotFoundException
我100%確定該文件存在。任何線索我做錯了什麼?

+1

你也可以粘貼你得到的異常嗎? –

+1

'newFilename'與'productFilename'不同嗎?您似乎使用不同的變量來創建和重命名。既然這可以在Windows上運行,那麼你是否遇到了一個案例問題?我會記錄用於寫入臨時文件的文件名以及用於重命名的文件名。 –

+0

請參閱我的編輯。生成函數正在返回重命名函數正在使用的文件名。 – jorgen

回答

1

我找到了解決方案。需要修剪文件名以在Linux中識別。但是,這在Windows中無需修剪就可以使用。

相關問題