java中FTPClient無法刪除中文文件問題

問題描述:

  使用org.apache.commons.net.ftp.FTPClient刪除文件如果文件名帶有中文時,就會刪除失敗

如下圖有一箇中文文件名的文件在 home/lc 目錄下

刪除文件部分代碼:

 

調用刪除:

 運行結果:

開始猜測是權限原因,於是用ftp工具嘗試刪除,發現可以刪除。

那就有問題了。

原因:

  FTP協議裏面,規定文件名編碼爲iso-8859-1,所以目錄名或文件名包含中文需要轉碼。

解決方案:

將中文的目錄或文件名轉爲iso-8859-1編碼的字符。參考代碼:

  boolean dele = ftp.deleteFile(new String(fileName.getBytes("utf-8"),"iso-8859-1"));

然後就能刪除成功了

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章