java 查看文件夹下面所有文件
2008-03-11 15:14
309 查看
import java.io.File;
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;
import java.text.SimpleDateFormat;
public class FileViewer {
File myDir;
File[] contents;
Vector vectorList;
Iterator currentFileView;
File currentFile;
String path;
public FileViewer() {
path = new String("");
vectorList = new Vector();
}
public FileViewer(String path) {
this.path = path;
vectorList = new Vector();
}
/**
* 设置浏览的路径
*/
public void setPath(String path) {
this.path = path;
}
/***
* 返回当前目录路径
*/
public String getDirectory() {
return myDir.getPath();
}
/**
* 刷新列表
*/
public void refreshList() {
if (this.path.equals("")) {
path = "c://";
}
myDir = new File(path);
vectorList.clear();
contents = myDir.listFiles();
//重新装入路径下文件
for (int i = 0; i < contents.length; i++) {
vectorList.add(contents[i]);
}
currentFileView = vectorList.iterator();
}
/**
* 移动当前文件集合的指针指到下一个条目
* @return 成功返回true,否则false
*/
public boolean nextFile() {
while (currentFileView.hasNext()) {
currentFile = (File) currentFileView.next();
return true;
}
return false;
}
/**
* 返回当前指向的文件对象的文件名称
*/
public String getFileName() {
return currentFile.getName();
}
/**
* 返回当前指向的文件对象的文件尺寸
*/
public String getFileSize() {
long fileLong = currentFile.length();
if (fileLong < 1024) {
return (Double.toString(fileLong) + "B");
}
else if (fileLong > 1024 && fileLong < 1024 * 1024) {
return (Double.toString(fileLong / 1024.0) + "K");
}
else if (fileLong > 1024 * 1024) {
return (Double.toString(fileLong / (1024 * (1024.0))) + "M");
}
else {
return new Long(currentFile.length()).toString();
}
}
/**
* 返回当前指向的文件对象的最后修改日期
*/
public String getFileTimeStamp() {
String ret = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ret = sdf.format(new Date(currentFile.lastModified()));
return " " + ret;
}
/**
* 返回当前指向的文件对象是否是一个文件目录
*/
public boolean getFileType() {
return currentFile.isDirectory();
}
/**
* 返回文件后缀名称
*/
public String getFileExtenName() {
String ret = "";
ret = currentFile.getName();
if (ret.indexOf(".") <= 0) {
return "";
}
ret = ret.substring(ret.indexOf(".") + 1, ret.length());
return ret;
}
public static void main(String[] args) {
System.out.println("File List");
FileViewer f = new FileViewer();
f.setPath("D://onlyfortest//");
f.refreshList();
while (f.nextFile()) {
System.out.print(f.getFileName());
if (!f.getFileType()) {
System.out.print(" " + f.getFileSize());
}
else {
System.out.print(" <DIR>");
}
System.out.print(f.getFileTimeStamp() + "/n");
}
}
}
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;
import java.text.SimpleDateFormat;
public class FileViewer {
File myDir;
File[] contents;
Vector vectorList;
Iterator currentFileView;
File currentFile;
String path;
public FileViewer() {
path = new String("");
vectorList = new Vector();
}
public FileViewer(String path) {
this.path = path;
vectorList = new Vector();
}
/**
* 设置浏览的路径
*/
public void setPath(String path) {
this.path = path;
}
/***
* 返回当前目录路径
*/
public String getDirectory() {
return myDir.getPath();
}
/**
* 刷新列表
*/
public void refreshList() {
if (this.path.equals("")) {
path = "c://";
}
myDir = new File(path);
vectorList.clear();
contents = myDir.listFiles();
//重新装入路径下文件
for (int i = 0; i < contents.length; i++) {
vectorList.add(contents[i]);
}
currentFileView = vectorList.iterator();
}
/**
* 移动当前文件集合的指针指到下一个条目
* @return 成功返回true,否则false
*/
public boolean nextFile() {
while (currentFileView.hasNext()) {
currentFile = (File) currentFileView.next();
return true;
}
return false;
}
/**
* 返回当前指向的文件对象的文件名称
*/
public String getFileName() {
return currentFile.getName();
}
/**
* 返回当前指向的文件对象的文件尺寸
*/
public String getFileSize() {
long fileLong = currentFile.length();
if (fileLong < 1024) {
return (Double.toString(fileLong) + "B");
}
else if (fileLong > 1024 && fileLong < 1024 * 1024) {
return (Double.toString(fileLong / 1024.0) + "K");
}
else if (fileLong > 1024 * 1024) {
return (Double.toString(fileLong / (1024 * (1024.0))) + "M");
}
else {
return new Long(currentFile.length()).toString();
}
}
/**
* 返回当前指向的文件对象的最后修改日期
*/
public String getFileTimeStamp() {
String ret = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ret = sdf.format(new Date(currentFile.lastModified()));
return " " + ret;
}
/**
* 返回当前指向的文件对象是否是一个文件目录
*/
public boolean getFileType() {
return currentFile.isDirectory();
}
/**
* 返回文件后缀名称
*/
public String getFileExtenName() {
String ret = "";
ret = currentFile.getName();
if (ret.indexOf(".") <= 0) {
return "";
}
ret = ret.substring(ret.indexOf(".") + 1, ret.length());
return ret;
}
public static void main(String[] args) {
System.out.println("File List");
FileViewer f = new FileViewer();
f.setPath("D://onlyfortest//");
f.refreshList();
while (f.nextFile()) {
System.out.print(f.getFileName());
if (!f.getFileType()) {
System.out.print(" " + f.getFileSize());
}
else {
System.out.print(" <DIR>");
}
System.out.print(f.getFileTimeStamp() + "/n");
}
}
}
相关文章推荐
- 用JAVA扫描指定文件夹下面所有以.txt结尾的文件,并将其绝对路径输出
- 用JAVA扫描指定文件夹下面所有以.txt结尾的文件,并将其绝对路径输出 .
- 用java扫描指定文件夹下面所有以.txt, .log结尾的文件,
- 如何查看Linux下面某一个目录下所有的隐藏文件和文件夹
- Java 删除一个文件夹下面的所有文件
- (java)获取某文件夹下面所有的指定类型的文件名称,并根据情况返回可用的名称
- java 删除指定文件夹 以及文件下下面的所有文件
- java遍历一个文件夹下面的所有文件
- java扫描文件夹下面的所有文件(递归与非递归实现)
- java 循环遍历文件夹下面的所有文件
- java 删除指定文件夹 以及文件下下面的所有文件
- java操作hdfs,实现文件上传、下载以及查看当前文件夹下所有文件
- Android 删除目录下的所有文件以及文件夹及遍历文件夹下面的文件
- Java获取一个文件夹内的所有文件(包括所有子文件夹内的)
- 读取NSBundle下自己新建的文件夹下面的所有文件
- 遍历文件夹下面所有文件(或者指定文件)
- Java获取文件夹下所有文件文件名写入文件中
- java删除文件夹下所有文件示例分享
- PHP递归根据分辨率更改文件夹下面的所有文件名字
- java读取某个文件夹下的所有文件