[已解決]如何獲取我的FTP服務器上的文件和文件夾列表?如何使用android列出ftp目錄?
我知道如何連接和上傳文件,但不知道如何獲得目錄列表:
try {
FTPClient ftpClient = new FTPClient();
ftpClient.connect(InetAddress.getByName("176.28.25.46"));
ftpClient.login("******", "******");
System.out.println("status :: " + ftpClient.getStatus());
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.enterLocalPassiveMode();
// Prepare file to be uploaded to FTP Server
File file = new File("default.prop");
FileInputStream ifile = new FileInputStream(file);
// Upload file to FTP Server
ftpClient.storeFile("/subdomains/giveyourapps/httpdocs/apps/default.prop",ifile);
ftpClient.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
但每次剪斷的代碼,我在谷歌找到了我沒有工作: -/
try {
FTPClient ftpClient = new FTPClient();
ftpClient.connect(InetAddress.getByName("176.28.25.46"));
ftpClient.login("******", "******");
System.out.println("status :: " + ftpClient.getStatus());
String toppath = new String();
FTPFile[] ftpDirs = ftpClient.listDirectories();
for (int i = 0; i < ftpDirs.length; i++) {
toppath = ftpDirs[0].getName();
Log.d("CONNECT", "Directories in the ftp server are "
+ ftpDirs[i].getName());
}
FTPFile[] ftpdirs2 = ftpClient.listFiles(toppath);
for (int i = 0; i < ftpdirs2.length; i++) {
Log.d("CONNECT",
"File i need is " + ftpdirs2[i].getName());
}
}
對於每個人都有同樣的問題。現在它與代碼:(感謝user1106888)
try {
FTPClient ftpClient = new FTPClient();
ftpClient.connect(InetAddress.getByName("176.28.25.46"));
ftpClient.login("******", "******");
System.out.println("status :: " + ftpClient.getStatus());
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.enterLocalPassiveMode();
try{
String toppath = new String();
FTPFile[] ftpDirs = ftpClient.listDirectories();
for (int i = 0; i < ftpDirs.length; i++) {
toppath = ftpDirs[0].getName();
System.out.println("Directory->: " + ftpDirs[i].getName());
}
FTPFile[] ftpdirs2 = ftpClient.listFiles(toppath);
for (int i = 0; i < ftpdirs2.length; i++) {
System.out.println("Files->: " + ftpdirs2[i].getName());
}
}catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
嗨。它給了我以下錯誤: 'org.apache.commons.net.ftp.FTPConnectionClosedException:連接關閉,無指示。' –
好吧,我想出了爲什麼。我需要setFileType爲FTP.BINARY_FILE_TYPE和enterLocalPassivMode。 –