java遍历文件并生成目录怎么实现? 10

遍历时用递归,然后生成目录要用到Jtree什么的。那位大哥给小弟写个例子,或者复制一个也行。小弟正在学JAVA。谢谢。... 遍历时用递归,然后生成目录要用到Jtree什么的。那位大哥给小弟写个例子,或者复制一个也行。小弟正在学JAVA。谢谢。 展开
 我来答
jessiejacky
2009-08-26 · TA获得超过227个赞
知道答主
回答量:107
采纳率:0%
帮助的人:0
展开全部
import java.io.File;
import java.util.HashMap;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;

public class TreeExample {
public static String root;
public static HashMap<TreeItem, File> map = new HashMap<TreeItem, File>();

public static void main(String[] args) {
Display display = Display.getDefault();
Shell shell = new Shell(display);
shell.setText("Tree Example"闷闷);
shell.setBounds(100, 100, 200, 300);
shell.setLayout(new FillLayout());
final Tree tree = new Tree(shell, SWT.SINGLE);
File file = new File("d:\伏知\");
root = file.getAbsolutePath();
TreeItem item = new TreeItem(tree, 0);
item.setText(file.getName());
map.put(item, file);
item.setChecked(false);
// item.setImage(new Image(display,"alt_window_16.gif"));
transferFile(file, item);
tree.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TreeItem[] selected = tree.getSelection();
if (selected.length >缺罩消 0) {
//System.out.println("Selected: " + selected[0].getText());
File file = map.get(selected[0]);
System.out.println("Selected: "+file.getAbsolutePath());
file.setLastModified(System.currentTimeMillis());
}
}
});

shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}

}
display.dispose();
}

public static void transferFile(File file, TreeItem item) {
StringBuffer sb = new StringBuffer();
TreeItem myItem = item;

if (file.isFile()) {
if (!file.getAbsolutePath().equals(root)) {
myItem = new TreeItem(item, 0);
myItem.setText(file.getName());
map.put(myItem, file);
}
} else if (file.isDirectory()) {
if (!file.getAbsolutePath().equals(root)) {
myItem = new TreeItem(item, 0);
myItem.setText(file.getName());
map.put(myItem, file);
}
File[] childFiles = file.listFiles();
for (int i = 0; i < childFiles.length; i++) {
transferFile(childFiles[i], myItem);
}
}
}

}

这是我用SWT写的,你可以导一下SWT包,在eclipse安装目录的plugin下有的,当然要改成JTREE也很方便的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祚胤17
2009-08-26 · TA获得超过786个赞
知道大有可为答主
回答量:1149
采纳率:82%
帮助的人:261万
展开全部
枚举一个陆物耐文件夹中的所有文件
/蚂穗*
import java.io.*;
import java.util.*;
*/
LinkedList<String> folderList = new LinkedList<String>();
folderList.add(%%1);
while (folderList.size() >早春 0) {
File file = new File(folderList.poll());
File[] files = file.listFiles();
List<File> fileList = new ArrayList<File>();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
folderList.add(files[i].getPath());
} else {
fileList.add(files[i]);
}
}
for (File f : fileList) {
%%2=f.getAbsoluteFile();
%%3
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式