Heim  >  Artikel  >  Java  >  Beispiel für die Implementierung eines lokalen FTP-Dateiverwaltungsmoduls mit Java (FTP-Softwareentwicklung drei)

Beispiel für die Implementierung eines lokalen FTP-Dateiverwaltungsmoduls mit Java (FTP-Softwareentwicklung drei)

Y2J
Y2JOriginal
2017-04-21 16:53:322189Durchsuche

In diesem Artikel wird die Implementierungsmethode des lokalen FTP-Dateiverwaltungsmoduls als Referenz erläutert. Der spezifische Inhalt lautet wie folgt:

Beispiel für die Implementierung eines lokalen FTP-Dateiverwaltungsmoduls mit Java (FTP-Softwareentwicklung drei)1. Anzeigefunktion der lokalen Dateiliste

Zeigt alle Dateien im aktuellen lokalen Verzeichnis an und zeigt die Dateiattribute an, einschließlich Dateiname, Größe und Datum , über javax.JTable(), um bestimmte Daten anzuzeigen. Durch Ändern des aktuellen Dateiverzeichnisses wird die Methode listLocalFiles() der Klasse com.oyp.ftp.panel.local.LocalPanel aufgerufen. Ihr Hauptcode lautet wie folgt:



2, Aktualisierungsfunktion der lokalen Dateiliste

 /** 
 * 读取本地文件到表格的方法 
 */ 
private void listLocalFiles(File selDisk) { 
 if (selDisk == null || selDisk.isFile()) { 
 return; 
 } 
 localSelFilePathLabel.setText(selDisk.getAbsolutePath()); 
 File[] listFiles = selDisk.listFiles(); // 获取磁盘文件列表 
 // 获取表格的数据模型 
 DefaultTableModel model = (DefaultTableModel) localDiskTable.getModel(); 
 model.setRowCount(0); // 清除模型的内容 
 model.addRow(new Object[] { ".", "<DIR>", "" }); // 创建.选项 
 model.addRow(new Object[] { "..", "<DIR>", "" }); // 创建..选项 
 if (listFiles == null) { 
 JOptionPane.showMessageDialog(this, "该磁盘无法访问"); 
 return; 
 } 
 // 遍历磁盘根文件夹的内容,添加到表格中 
 for (File file : listFiles) { 
 File diskFile = new DiskFile(file); // 创建文件对象 
 String length = file.length() + "B "; // 获取文件大小 
 if (file.length() > 1000 * 1000 * 1000) { // 计算文件G单位 
 length = file.length() / 1000000000 + "G "; 
 } 
 if (file.length() > 1000 * 1000) { // 计算文件M单位 
 length = file.length() / 1000000 + "M "; 
 } 
 if (file.length() > 1000) { 
 length = file.length() / 1000 + "K "; // 计算文件K单位 
 } 
 if (file.isDirectory()) { // 显示文件夹标志 
 length = "<DIR>"; 
 } 
 // 获取文件的最后修改日期 
 String modifDate = new Date(file.lastModified()).toLocaleString(); 
 if (!file.canRead()) { 
 length = "未知"; 
 modifDate = "未知"; 
 } 
 // 将单个文件的信息添加到表格的数据模型中 
 model.addRow(new Object[] { diskFile, length, modifDate }); 
 } 
 localDiskTable.clearSelection(); // 取消表格的选择项 
}

Durch Klicken auf die Schaltfläche „Aktualisieren“ wird die Methode actionPerformed(ActionEvent e) der Klasse com.oyp.ftp.panel.local.RefreshAction ausgelöst . Der Hauptcode lautet wie folgt: Das obige Antwortereignis ruft die Methode „refreshCurrentFolder()“ von com.oyp.ftp.panel.local auf .LocalPanel-Klasse. Der spezifische Code lautet wie folgt:


3. Klicken Sie auf die Schaltfläche „Neuer Ordner“. löst die Methode com.oyp.ftp.panel.local .CreateFolderAction class actionPerformed (ActionEvent e) aus. Anschließend wird ein Dialogfeld angezeigt. Geben Sie den Namen des zu erstellenden Ordners ein, wählen Sie „OK“ und klicken Sie auf „Abbrechen“. "-Taste zum Beenden. Der Hauptcode lautet wie folgt:


/** 
 * 刷新本地资源列表的动作处理器的事件处理方法 
 */ 
 @Override 
 public void actionPerformed(ActionEvent e) { 
 this.localPanel.refreshCurrentFolder(); // 调用管理面板的刷新方法 
 }

4. Funktion „Lokale Datei löschen“

 /** 
 * 刷新指定文件夹的方法 
 */ 
void refreshFolder(File file) { 
 listLocalFiles(file); 
} 
 
/** 
 * 刷新本地当前文件夹的方法 
 */ 
public void refreshCurrentFolder() { 
 final File file = getCurrentFolder(); // 获取当前文件夹 
 Runnable runnable = new Runnable() { // 创建新的线程 
 public void run() { 
 listLocalFiles(file); // 重载当前文件夹的列表到表格中 
 } 
 }; 
 //导致 runnable 的 run 方法在 EventQueue 的指派线程上被调用。 
 SwingUtilities.invokeLater(runnable); // 在事件线程中调用该线程对象 
}
Wählen Sie die zu löschende Datei oder den Ordner aus Durch Klicken auf die Schaltfläche „Löschen“ wird die Methode actionPerformed(ActionEvent e) der Klasse com.oyp.ftp.panel.local.DelFileAction ausgelöst. Anschließend wird ein Dialogfeld angezeigt. Wählen Sie „Ja“, „Nein“ und „Nein“. Beenden Sie den Vorgang mit der Schaltfläche „Abbrechen“. Der Hauptcode lautet wie folgt:



5. Funktion „Lokale Datei umbenennen“

/** 
 * 创建文件夹按钮的动作处理器的动作事件的方法 
 */ 
 @Override 
 public void actionPerformed(ActionEvent e) { 
 // 使用输入对话框接收用户输入的文件夹名称 
 String folderName = JOptionPane.showInputDialog("请输入文件夹名称:"); 
 if (folderName == null) 
 return; 
 File curFolder = null; 
 // 获取本地资源表格的当前选择行号 
 int selRow = localPanel.localDiskTable.getSelectedRow(); 
 if (selRow < 0) { 
 // 创建当前文件夹对象 
 curFolder = new File(localPanel.localSelFilePathLabel.getText()); 
 } else { 
 // 获取表格选择行的第一个单元值 
 Object value = localPanel.localDiskTable.getValueAt(selRow, 0); 
 if (value instanceof File) { // 如果单元值是文件,则获取文件的上级文件夹 
 curFolder = (File) value; 
 if (curFolder.getParentFile() != null) 
  curFolder = curFolder.getParentFile(); 
 } else 
 // 否则根据界面的路径标签创建当前文件夹对象 
 curFolder = new File(localPanel.localSelFilePathLabel.getText()); 
 } 
 // 创建当前文件夹下的新文件夹对象 
 File tempFile = new File(curFolder, folderName); 
 if (tempFile.exists()) {// 如果存在相同文件或文件夹 
 JOptionPane.showMessageDialog(localPanel, folderName 
  + "创建失败,已经存在此名称的文件夹或文件。", "创建文件夹", 
  JOptionPane.ERROR_MESSAGE);// 提示用户名称已存在 
 return; // 结束本方法 
 } 
 if (tempFile.mkdir()) // 创建文件夹 
 JOptionPane.showMessageDialog(localPanel, folderName + "文件夹,创建成功。", 
  "创建文件夹", JOptionPane.INFORMATION_MESSAGE); 
 else 
 JOptionPane.showMessageDialog(localPanel, folderName + "文件夹无法被创建。", 
  "创建文件夹", JOptionPane.ERROR_MESSAGE); 
 this.localPanel.refreshFolder(curFolder);// 刷新文件夹 
 }
Wählen Sie die Datei oder Dateien aus, die umbenannt werden sollen Klicken Sie im Ordner auf die Schaltfläche „Umbenennen“, um die Methode actionPerformed(ActionEvent e) der Klasse com.oyp.ftp.panel.local.RennameAction auszulösen. Der Hauptcode lautet wie folgt:



Das obige ist der detaillierte Inhalt vonBeispiel für die Implementierung eines lokalen FTP-Dateiverwaltungsmoduls mit Java (FTP-Softwareentwicklung drei). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn