listfiles方法ftp
『壹』 用java編寫一個程序實現輸出我的電腦上建立的ftp伺服器根目錄下的所有文件名
使用File類中方法就可以實現
File[] listFiles() 返回目錄下所有的文件
File file=new File("你的ftp的根路徑");
File files[]=file.listFiles();
for(int i=0;i<files.length;i++){
System.out.println(files[i].getName() );
}
如果要獲取所有的文件和文件夾可以使用String[] list()方法。返回的是String類型的數組,其中所有文件和文件夾的相對路徑表示。
補充---
如果那樣的話那麼就需要在你的ftp伺服器上做一個socket服務端,你通過一個客戶端連接上去。然後伺服器端將獲取的文件列表數組傳遞給你,就可以了。如果想直接獲取別人的機器的文件列表是很難的,基本上是不可能的,當然是出於安全的考慮
『貳』 如何 用Java 實現 獲取FTP伺服器上的所有文件名,已知FTP的密碼,用戶名!遠程獲取!
public void ftpJdomFile(String dir) throws FileNotFoundException, IOException{
//創立根節點
// 下面這個方法是列出指定目錄下的所有文件和文件夾
List dirslist=Arrays.asList(new File(dir).listFiles());
for (Iterator i = dirslist.iterator(); i.hasNext();) {
// System.out.println(i.next()); // line 1
String s=i.next().toString();
if (new File(s).isFile()) {
System.out.println(s+"-文件");
}
if (new File(s).isDirectory()) {
System.out.println(s+"++++++++文件夾");
ftpJdomFile(s);
}
}
}
『叄』 java遍歷ftp文件夾時,在FTPFile ff[] = ftpClient.listFiles()處一直提示空指針異常錯誤,是怎麼回事。
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(url, port);
//如果採用默認埠,可以使用ftp.connect(url)的方式直接連接FTP伺服器
ftp.login(username, password);//登錄
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(remotePath);//轉移到FTP伺服器目錄
FTPFile[] fs = ftp.listFiles();
『肆』 Ftp.listFiles()報錯NoSuchMethodError,如何解決
java.net.SocketException: Software caused connection abort: recv failed
原因:服務端將連接關閉了(可能發生了異常),但客戶端還在接收數據。
總結產生原因,在服務端/客戶端單方面關閉連接的情況下,另一方依然以為
tcp連接仍然建立,試圖讀取對方的響應數據,導致出現
Software caused connection abort: recv failed的異常.
因此在receive數據之前,要先判斷連接狀態.
通過inputstream的available()方法來判斷,是否有響應結果.
如果available()的返回值為0,說明沒有響應數據,可能是對方已經斷開連接,
如果available()的返回值大於0,說明有響應數據.
另外值得注意的是available()返回的值是非堵塞的,可以被多個線程訪問
『伍』 java使用FTP下載文件,下載失敗,中文亂碼問題
實現功能描述:通過資料庫查找圖片名稱集合,下載並保存至本地文件夾。
功能實現中遇到問題:更改FTP工作目錄與下載文件失敗。
問題一:FTP工作目錄更改後,下載文件路徑設置簡化。
將工作目錄切換至FTP的「part」目錄,「partftpClient.changeWorkingDirectory("/part/");」,之後下載文件路徑僅需提供文件名。
問題二:文件下載失敗,文件名亂碼。
在「FTPFile[] remoteFiles = ftpClient.listFiles();」執行時,獲取文件名亂碼。
原因:FTP服務端與客戶端編碼格式不一致。查找亂碼文件並使用在線工具恢復,確認客戶端使用GBK編碼,顯示格式為iso-8859-1。
解決步驟:調整FTP客戶端編碼格式為GBK,亂碼問題解決。
新問題:下載文件失敗,文件大小為零,顯示格式損壞。
排查FTP服務端用戶許可權、能否ping通伺服器地址、取消文件只讀屬性。確認文件地址錯誤,編碼格式影響文件讀取。
定位問題:中文亂碼導致FTP客戶端讀取文件錯誤。
解決方法:取消FTP客戶端編碼格式設置,通過修改循環內部邏輯下載文件,獲取文件名時進行轉碼處理。
最終結果:成功下載文件並保存至本地,問題解決。
『陸』 FTPClient類的listFile()卡住了,啥原因啊
這個方法要和ftp伺服器通訊,執行list命令,因此如果網路不通、伺服器沒登陸等都可能導致調用阻塞、出錯等,你手工ftp登陸伺服器試一下。
『柒』 使用java通過ftp下載文件,ftpClient.listFiles獲取不到當前路徑下的文件
File dir=new File(".");//當前路徑是項目文件夾,是src外面而不是裡面
File[]files=dir.listFiles(new FileFilter(){
@Override
public boolean accept(File arg0) {
return arg0.isFile();
}
});
System.out.println("有文件"+files.length+"個");