用JAVA编写一个程序实现输出我的电脑上建立的FTP服务器根目录下的所有文件名

用JAVA编写一个程序实现输出我的电脑上建立的FTP服务器根目录下的所有文件名,第1张

使用File类中方法就可以实现
File[] listFiles() 返回目录下所有的文件
File file=new File("你的ftp的根路径");
File files[]=filelistFiles();
for(int i=0;i<fileslength;i++){
Systemoutprintln(files[i]getName() );
}
如果要获取所有的文件和文件夹可以使用String[] list()方法。返回的是String类型的数组,其中所有文件和文件夹的相对路径表示。
补充---
如果那样的话那么就需要在你的ftp服务器上做一个socket服务端,你通过一个客户端连接上去。然后服务器端将获取的文件列表数组传递给你,就可以了。如果想直接获取别人的机器的文件列表是很难的,基本上是不可能的,当然是出于安全的考虑

参考
client = new FTPSClient(implictSSL);
KeyManagerFactory kmf = KeyManagerFactorygetInstance("X509");
kmfinit(KeyStoregetInstance("BKS"), "wshrut"toCharArray());
clientsetTrustManager(new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() { return null; }
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { }
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { }
});
clientsetKeyManager(kmfgetKeyManagers()[0]);
clientsetNeedClientAuth(false);
clientsetUseClientMode(false);

import javaawtBorderLayout;
import javaawtFlowLayout;
import javaawtGridLayout;
import javaawtList;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaio;
import javaxswingJButton;
import javaxswingJComboBox;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJList;
import javaxswingJOptionPane;
import javaxswingJPanel;
import javaxswingJScrollPane;
import javaxswingJTextField;
import javaxswingJToolBar;
import javaxswingDefaultListModel;
import javaxswingJTree;
import sunnetTelnetInputStream;
import sunnetftpFtpClient;
import sunnetftpFtpLoginException;
public class Ttt
extends JFrame
implements ActionListener {
FtpClient ftp = null;
private List list = new List();
private JPanel FtpClientFrame = new JPanel(new BorderLayout());
private JPanel FtpClientFrameOne = new JPanel(new FlowLayout(FlowLayout
LEFT));
private JPanel FtpClientFrameTwo = new JPanel(new GridLayout(1, 8));
private JPanel FtpClientFrameThree = new JPanel(new GridLayout(2, 1));
private JPanel FtpClientFrameFour = new JPanel(new GridLayout(1, 2));
//连接、断开按钮
private JButton linkButton = new JButton("Link");
private JButton breakButton = new JButton("Break");
//连接状态
private JLabel statusLabel = new JLabel();
//用户登录
private JLabel urlLabel = new JLabel("Ftp URL:");
private JLabel usernameLabel = new JLabel("username:");
private JLabel passwordLabel = new JLabel("password:");
private JLabel portLabel = new JLabel("port:");
private JTextField urlTextField = new JTextField(10);
private JTextField usernameTextField = new JTextField(10);
private JTextField passwordTextField = new JTextField(10);
private JTextField portTextField = new JTextField(10);
//本地、远程窗口
DefaultListModel modelList = new DefaultListModel();
private JList localList = new JList();
private JList distanceList = new JList();
JScrollPane localScrollPane = new JScrollPane(localList);
JScrollPane distanceScrollPane = new JScrollPane(distanceList);
//本地、远程目录树
private JTree localTree;
private JTree ServerTree;
public Ttt() {
FtpClientFrameOneadd(linkButton);
FtpClientFrameOneadd(breakButton);
FtpClientFrameOneadd(statusLabel);
FtpClientFrameTwoadd(urlLabel);
FtpClientFrameTwoadd(urlTextField);
FtpClientFrameTwoadd(usernameLabel);
FtpClientFrameTwoadd(usernameTextField);
FtpClientFrameTwoadd(passwordLabel);
FtpClientFrameTwoadd(passwordTextField);
FtpClientFrameTwoadd(portLabel);
FtpClientFrameTwoadd(portTextField);
FtpClientFrameThreeadd(FtpClientFrameOne);
FtpClientFrameThreeadd(FtpClientFrameTwo);
FtpClientFrameFouradd(localScrollPane);
FtpClientFrameFouradd(list);
FtpClientFrameadd(FtpClientFrameThree, "North");
FtpClientFrameadd(FtpClientFrameFour, "Center");
setContentPane(FtpClientFrame);
setTitle("Ftp客户端");
setSize(600, 500);
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
setVisible(true);
linkButtonaddActionListener(this);
breakButtonaddActionListener(this);
}
public String getDir(String path) {
String dirName;
int ch;
int begin = 55;
dirName = pathsubstring(begin)trim();
return dirName;
}
public void loadList() {
StringBuffer buf = new StringBuffer();
int ch;
listremoveAll();
try {
TelnetInputStream t = ftplist();
tsetStickyCRLF(true);
while ( (ch = tread()) >= 0) {
if (ch == '\n') {
listadd(getDir(buftoString()));
bufsetLength(0);
}
else {
bufappend( (char) ch);
}
}
}
catch (IOException e) {
eprintStackTrace();
}
listvalidate();
}
public void actionPerformed(ActionEvent evt) {
Object source = evtgetSource();
if (source == linkButton) {
//连接Ftp服务器
try {
if (ftp != null)
ftpcloseServer();
statusLabelsetText("连接中,请等待");
ftp = new FtpClient(urlTextFieldgetText());
ftplogin(usernameTextFieldgetText(),
passwordTextFieldgetText());
ftpbinary();
}
catch (FtpLoginException e) {
JOptionPaneshowMessageDialog(null, "Login Failure!!!");
eprintStackTrace();
}
catch (IOException e) {
JOptionPaneshowMessageDialog(null,
urlTextFieldgetText() + "Connection Failure!!!");
eprintStackTrace();
}
catch (SecurityException e) {
JOptionPaneshowMessageDialog(null, "No Purview!!!");
eprintStackTrace();
}
if (urlTextFieldgetText()equals(""))
JOptionPaneshowMessageDialog(null, "Ftp服务器地址不能空!!!");
else if (usernameTextFieldgetText()equals(""))
JOptionPaneshowMessageDialog(null, "用户名不能为空!!!");
else if (passwordTextFieldgetText()equals(""))
JOptionPaneshowMessageDialog(null, "密码不能为空!!!");
else
statusLabelsetText("已连接到Ftp:" + urlTextFieldgetText());
loadList();
}
if (source == breakButton) {
Systemexit(0);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Ttt ftpClientFrame = new Ttt();
}
}
收集的一些代码,忘记从拿来的了` 你可以看看


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13512819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-22
下一篇 2023-08-22

发表评论

登录后才能评论

评论列表(0条)

保存