日期:2014-05-19  浏览次数:20792 次

问个文件搜索的小问题
代码如下:
package com.test.servlet;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class readexcel {
public static void access(File f)
{
String filePath = "D:/123.xls";//注意如果这里出现乱码导致文件路径错误试着改下GBK,换成ISO-8859-1
try {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
filePath));
// 创建工作簿 
HSSFWorkbook workBook = new HSSFWorkbook(fs);
/**
 * 获得Excel中工作表个数 
 */
for (int i = 0; i < workBook.getNumberOfSheets(); i++) {
// 创建工作表 
HSSFSheet sheet = workBook.getSheetAt(i);
int rows = sheet.getPhysicalNumberOfRows(); // 获得行数 

if (rows > 0) {
sheet.getMargin(HSSFSheet.TopMargin);
for (int j = 0; j < rows; j++) { // 行循环 
HSSFRow row = sheet.getRow(j);
if (row != null) {
int cells = row.getLastCellNum();// 获得列数 

for (short k = 0; k < cells; k++) { // 列循环 
HSSFCell cell = row.getCell(k);
if (cell != null) {
String value = "q";
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING: // 字符串型 
value = cell.getRichStringCellValue()
.toString()+".pdf";
File fe[]=f.listFiles();
for(int t=0;t<fe.length;t++)
{
if(fe[t].isFile())
{
System.out.println(fe[t].getPath());


else 
{
access(fe[t]);
}
}
break;
}
}
}
}
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
}

}
public static void main(String args[])
{
File fi=null;
try
{
fi=new File("h:/");
access(fi); //递归列出某个目录下的所有文件
}catch(Exception e){}

}
}
我搜的是移动硬盘
结果是:
h:\$RECYCLE.BIN\S-1-5-21-3324643456-2195272104-3560171464-500\$RSVUNX7\software\10201_database_win32.zip
h:\$RECYCLE.BIN\S-1-5-21-3324643456-2195272104-3560171464-500\$RSVUNX7\software\interlib1.2.rar
h:\$RECYCLE.BIN\S-1-5-21-3324643456-2195272104-3560171464-500\$RSVUNX7\software\10201_database_win32.zip
h:\$RECYCLE.BIN\S-1-5-21-3324643456-2195272104-3560171464-500\$RSVUNX7\software\interlib1.2.rar

好像搜到了回收站里面的东西。可惜我进这个目录里面没有东西。
搜本地磁盘时正常的。
------最佳解决方案--------------------
就是这样的
你可以指定h盘更细的目