先用java.io.File获取信息,
再使用xml来保存。
再使用xml来保存。
解决方案 »
- 黑《Thinking in Java》的人这么多,平反一下
- 我想打印这样的形状,感谢
- 还要请大家帮忙看一下,为什么我的代码在JDK1.408上可以通过并运行,但在JDK1.5中可以编译,但运行就出错呢?
- java怎么连接SQL2000数据库?
- 这是什么意思呢?
- SecretKeyFactory.getInstance 出错,求高人指点。
- throws 和throw在抛出异常时有什么区别?????
- java Socket和apache TelnetClient
- 请问智能软件有什么特点?详细点,最好能举些例子
- 怎样用java编写oicq
- java UNIX下运行udp发送的问题!
- 用ftpclient类上传文件时,如何覆盖已存在的文件??
觉得没有必要用xsd这样的东西,因为你对每一个文件都采取同样的操作,所以用一个循环遍历所有文件(当然含子目录时还需要递归),然后取出每一个文件的相关信息,当作文本往.xml文件里写就行了。当然你要做一些另外的工作,就是保证你写的文件是格式良好的,可以在写得时候加一些标签。
关键是操作xml
import java.io.FileWriter;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;public class ListFile {
private static void listDirectory(Element element, File file){
Element subRoot = element.addElement(file.getName());
File[] files = file.listFiles();
//把该目录下的每一个文件添加到xml中
for(int i = 0; i < files.length; i++){
File aFile = files[i];
if(aFile.isDirectory()){
listDirectory(subRoot, aFile);
}else{
Element fileElement = subRoot.addElement(aFile.getName());
fileElement.addElement("size").addText(aFile.length()+"Bytes");
fileElement.addElement("LastModified").addText(new java.util.Date(aFile.lastModified()).toString());
}
}
}
public static void list(String fileName){
//获取指定目录下的文件
File file = new File(fileName);
File[] files = file.listFiles();
//建立xml文档
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("Files");
root.addAttribute("name", file.getAbsolutePath());
root.addComment("下面是指定目录下的所有文件列表:");
//把每一个文件添加到xml中
for(int i = 0; i < files.length; i++){
File aFile = files[i];
if(aFile.isDirectory()){
listDirectory(root, aFile);
}else{
Element fileElement = root.addElement(aFile.getName());
//fileElement.addAttribute("Size", aFile.length() + "Bytes");
fileElement.addElement("size").addText(aFile.length()+"Bytes");
//fileElement.addAttribute("LastModified",
// new java.util.Date(aFile.lastModified()).toString());
fileElement.addElement("LastModified").addText(new java.util.Date(aFile.lastModified()).toString());
}
}
//将xml输出到文件中
try{
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileWriter(new File("c:/file.xml")), format);
writer.write(doc);
writer.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
list("c:\\windows");
}
}
我用的JB9里面好象没有啊
Tasia(灯盏) 大哥,我测试你的程序的时候出现Null pointer异常,正在研究中