2011-12-27 52 views
1

編碼時遇到一個奇怪的問題。我必須將名稱爲börsenzeitung_komplett的文件重命名爲processed_börsenzeitung_komplett無法更改文件名使用File.renameTo()在GNU/Linux上

我使用currentFile.renameTo(newFile)從Java API,它工作正常的Windows系統上,但返回的GNU/Linux系統上的錯誤。

+5

您是否檢查了源文件和目標目錄的讀寫權限? – LazyCubicleMonkey 2011-12-27 09:58:28

+0

也許運行java應用程序的用戶沒有權限重命名該文件。嘗試:chmod 777文件名。 – xuanyuanzhiyuan 2011-12-27 10:00:20

+0

如果您有一些解決方案,請與我分享。我現在有同樣的問題。你已經爲它+1 +1 – 2012-10-04 09:07:57

回答

1

您應該檢查輸出目錄的權限(並可選擇使用chmod更改它),或者目標文件已存在(我假設您沒有使用任何SecurityManager)。

由於java.util.File Javadoc說:

重新命名此抽象路徑名錶示的文件。

這種方法的行爲的許多方面是天生 依賴於平臺的:重命名操作可能無法從一個文件系統移動 文件到另一個,它可能不是原子,並且它 威力如果目標抽象路徑名爲 的文件已存在,則不成功。應始終檢查返回值以確保 重命名操作成功。

請注意,Files類定義移動方法以獨立於平臺的方式移動或重命名 文件。

+0

在這個文件'börsenzeitung_komplett'ö這個字符中的特殊字符的問題,休息所有其他文件正在重新命名。我正在使用Linux系統,我是否需要做一些設置以支持這些類型的字符? – dhroove 2012-01-01 02:15:32

+0

你能從GNU/Linux終端重命名這個文件嗎? – 2012-01-03 09:50:36