Я пытаюсь создать программу FTP с графическим интерфейсом, используя Java! И я успешно разработал рекурсивный алгоритм для получения всех файлов.
Пример структуры файла. (каждый из файлов и папок является MutableTreeNodes)
~
-- Documnets
-- file1.txt
-- file2.txt
-- Pictures
-- hi
-- file3.txt
-- file.txt
У меня есть объект TreePath, и у меня есть fileName. У меня также есть весь MutableTreeNode, связанный со всей директорией "~" (в данном случае). Мне нужно найти точный объект (который связан с TreePath).
Любая помощь будет оценена ..
Пример TreePath [~,Documents]
public static DefaultMutableTreeNode getFileStructure(FTPClient client,String workingPath,DefaultMutableTreeNode style )
{
try {
FTPFile[] files = client.listFiles(workingPath);
for (FTPFile file : files) {
if (file.isDirectory())
{
DefaultMutableTreeNode fileDirectory =new DefaultMutableTreeNode(file.getName());
// System.out.println("\n Folder: " +file.toString());
style.add(fileDirectory);
// System.out.println("Node Depth = " + style.getDepth());
getFileStructure(client, workingPath + "/" + file.getName(),style);
} else {
DefaultMutableTreeNode root =new DefaultMutableTreeNode();
System.out.println("");
System.out.println("Working Path: " + workingPath);
System.out.println("Filename: " + file.getName());
/// Convert variable (workingPath) to TreePath
/// Add node to TreePath
MutableTreeNode node = buildNodeFromString(workingPath);
MutableTreeNode lastLeaf = node.getLastLeaf();
TreePath path = new TreePath(lastLeaf.getPath());
System.out.println("Path =" + path);
DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode)path.getLastPathComponent();
// style.remove(parentNode);
MutableTreeNode fileDirectory =new MutableTreeNode(file.getName());
// parentNode.add(fileDirectory);
DefaultTreeModel model = (DefaultTreeModel) jt.getModel();
model.insertNodeInto(fileDirectory,parentNode,parentNode.getChildCount());
// model.reload(parentNode);
style.add(parentNode);
model.reload(style);
System.out.println("Added to node = " + parentNode.toString());
// System.out.println("First Node = " + i.getFirstChild().toString());
//System.out.println("Last Node = " + i.getLastChild().toString());
System.out.println("Num of Children = " + parentNode.getLeafCount());
System.out.println("Depth Count= " + style.getDepth());
// return i;
}
}
} catch (IOException ex) {
System.out.println("IOException:" + ex);
}
return style;
}
Часть else содержит код, который я пытаюсь заставить работать. Эта часть отвечает за 1) поиск узла (папки) и создание DefaultMutableTreeNode для этой папки и добавление файлового узла в этот узел папки ...