本文为大家分享了FTP远程文件管理模块的实现方法,供大家参考,具体内容如下
成都创新互联坚持网页设计,我们不会倒闭、转行,已经持续稳定运营十年。专业的建站公司技术,丰富的成功经验和创作思维,提供一站式互联网解决方案,携手广大客户,共同发展进步。我们不仅会设计网站,更会成都营销网站建设。帮助中小型企业在“互联网+"的时代里通过推广营销传播路线转型升级,累计帮助多家客户实现网络营销化,与我们一起携手共创未来!
首先看一下界面:

1、远程FTP服务器端的文件列表的显示
将远程的当前目录下所有文件显示出来,并显示文件的属性包括文件名、大小、日期、通过javax.swing.JTable()来显示具体的数据。更改当前文件目录会调用com.oyp.ftp.panel.ftp.FtpPanel类的listFtpFiles(final TelnetInputStream list)方法,其主要代码如下
/**
* 读取FTP文件到表格的方法
* @param list
* 读取FTP服务器资源列表的输入流
*/
public synchronized void listFtpFiles(final TelnetInputStream list) {
// 获取表格的数据模型
final DefaultTableModel model = (DefaultTableModel) ftpDiskTable
.getModel();
model.setRowCount(0);
// 创建一个线程类
Runnable runnable = new Runnable() {
public synchronized void run() {
ftpDiskTable.clearSelection();
try {
String pwd = getPwd(); // 获取FTP服务器的当前文件夹
model.addRow(new Object[] { new FtpFile(".", pwd, true),
"", "" }); // 添加“.”符号
model.addRow(new Object[] { new FtpFile("..", pwd, true),
"", "" }); // 添加“..”符号
byte[]names=new byte[2048];
int bufsize=0;
bufsize=list.read(names, 0, names.length);
int i=0,j=0;
while(i2、刷新远程FTP服务器端的文件列表
点击“刷新”按钮,会触发com.oyp.ftp.panel.ftp.RefreshAction类的actionPerformed(ActionEvent e)方法,其主要代码如下
/** 刷新按钮的动作处理器动作的事件处理方法 **/
@Override
public void actionPerformed(ActionEvent e) {
ftpPanel.refreshCurrentFolder(); // 调用刷新FTP资源列表的方法
}
上面的响应事件会调用com.oyp.ftp.panel.ftp.FtpPanel类的refreshCurrentFolder()方法,其主要代码如下
/** 刷新FTP资源管理面板的当前文件夹**/
public void refreshCurrentFolder() {
try {
// 获取服务器文件列表
TelnetInputStream list = ftpClient.list();
listFtpFiles(list); // 调用解析方法
} catch (IOException e) {
e.printStackTrace();
}
}
3、新建远程FTP服务器端的文件夹
点击“新建文件夹”按钮,会触发com.oyp.ftp.panel.ftp.CreateFolderAction类的actionPerformed(ActionEvent e)方法,然后弹出一个对话框,填写要新建的文件夹名称,选择“确定”,“取消”按钮结束。其主要代码如下
/**
* 创建文件夹的事件处理方法
*/
@Override
public void actionPerformed(ActionEvent e) {
// 接收用户输入的新建文件夹的名称
String folderName = JOptionPane.showInputDialog("请输入文件夹名称:");
if (folderName == null)
return;
int read = -1;
try {
// 发送创建文件夹的命令
ftpPanel.ftpClient.sendServer("MKD " + folderName + "\r\n");
// 读取FTP服务器的命令返回码
read = ftpPanel.ftpClient.readServerResponse();
} catch (IOException e1) {
e1.printStackTrace();
}
if (read == 257) {// 如果返回码等于257(路径名建立完成)
// 提示文件夹创建成功
JOptionPane.showMessageDialog(ftpPanel, folderName + "文件夹,创建成功。",
"创建文件夹", JOptionPane.INFORMATION_MESSAGE);
}else{
// 否则 提示用户该文件夹无法创建
JOptionPane.showMessageDialog(ftpPanel, folderName + "文件夹无法被创建。",
"创建文件夹", JOptionPane.ERROR_MESSAGE);
}
this.ftpPanel.refreshCurrentFolder();
}
4、 删除远程FTP服务器端的文件
选择好要删除的文件或文件夹,点击“删除”按钮,会触发com.oyp.ftp.panel.ftp.DelFileAction类的actionPerformed(ActionEvent e)方法,然后弹出一个对话框,选择“是”,“否”,“取消”按钮结束。其主要代码如下
public void actionPerformed(ActionEvent e) {
// 获取显示FTP资源列表的表格组件当前选择的所有行
final int[] selRows = ftpPanel.ftpDiskTable.getSelectedRows();
if (selRows.length < 1)
return;
int confirmDialog = JOptionPane.showConfirmDialog(ftpPanel, "确定要删除吗?");
if (confirmDialog == JOptionPane.YES_OPTION) {
Runnable runnable = new Runnable() {
/**
* 删除服务器文件的方法
* @param file - 文件名称
*/
private void delFile(FtpFile file) {
FtpClient ftpClient = ftpPanel.ftpClient; // 获取ftpClient实例
try {
if (file.isFile()) { // 如果删除的是文件
ftpClient.sendServer("DELE " + file.getName()
+ "\r\n"); // 发送删除文件的命令
ftpClient.readServerResponse(); // 接收返回编码
} else if (file.isDirectory()) { // 如果删除的是文件夹
ftpClient.cd(file.getName()); // 进入到该文件夹
TelnetInputStream telnetInputStream=ftpClient.list();
byte[]names=new byte[2048];
int bufsize=0;
bufsize=telnetInputStream.read(names, 0, names.length);
int i=0,j=0;
while(i5、重命名远程FTP服务器端的文件
选择好要重命名的文件或文件夹,点击“重命名”按钮,会触发com.oyp.ftp.panel.ftp.RenameAction类的actionPerformed(ActionEvent e)方法,其主要代码如下
/**
* 重命名FTP文件的事件处理方法
*/
@Override
public void actionPerformed(ActionEvent e) {
// 获取显示FTP资源的表格当前选择行号
int selRow = ftpPanel.ftpDiskTable.getSelectedRow();
if (selRow < 0)
return;
// 获取当前行的第一个表格单元值,并转换成FtpFile类型的对象
FtpFile file = (FtpFile) ftpPanel.ftpDiskTable.getValueAt(selRow, 0);
// 使用对话框接收用户输入的新文件或文件夹名称
String newName = JOptionPane.showInputDialog(ftpPanel, "请输入新名称。");
if (file.getName().equals(".") || file.getName().equals("..")
|| newName == null)
return;
try {
// 向服务器发送重命名的指令
ftpPanel.ftpClient.sendServer("RNFR " + file.getName() + "\r\n"); //对旧路径重命名
ftpPanel.ftpClient.readServerResponse();
ftpPanel.ftpClient.sendServer("RNTO " + newName + "\r\n"); //对新路径重命名
ftpPanel.ftpClient.readServerResponse();
ftpPanel.refreshCurrentFolder(); // 刷新当前文件夹
} catch (IOException e1) {
e1.printStackTrace();
}
} 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
网站名称:Java语言实现简单FTP软件FTP远程文件管理模块实现(10)
链接地址:http://www.jxjierui.cn/article/gejdic.html


咨询
建站咨询
