package filenameFilter
import java io File
/* * 实现功能 *
获取指定路径下的指定格式的文件
* */
public class Test {
public static void listPath(File file) {
// 接收筛选过后的文件对象数组
//用文件对象调用listFiles(FilenameFilter filter) 方法
//返回抽象路径名数组 这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
File files[] = file listFiles(new MyFilenameFilter())
/*//遍历出指定文件路径下符合条件的文件
for (File f : files) {
System out println(f)
}*/
//遍历出指定文件路径下的所有符合筛选条件的文件
for(File f: files){
if(f isDirectory()){
listPath(f)
}else{
System out println(f)
}
}
}
public static void main(String[] args) {
// 创建指定目录的文件对象
File file = new File( F:\\test )
// 调用文件晒筛选的方法 并将文件对象出入
listPath(file)
} }
package filenameFilter
import java io File
import java io FilenameFilter
//实现FilenameFilter接口 可用于过滤器文件名 //本方法实现的是筛选指定格式结尾的文件 public class MyFilenameFilter implements FilenameFilter {
/**
* @param args
*
*
实现功能 实现FilenameFilter接口 定义出指定的文件筛选器
*
*/
@Override
//重写accept方法 测试指定文件是否应该包含在某一文件列表中
public boolean accept(File dir String name) {
// TODO Auto generated method stub
// 创建返回值
boolean flag = true
// 定义筛选条件
//endWith(String str) 判断是否是以指定格式结尾的
if (name toLowerCase() endsWith( jpg )) {
} else if (name toLowerCase() endsWith( txt )) {
} else if (name toLowerCase() endsWith( gif )) {
} else {
flag = false
}
// 返回定义的返回值
//当返回true时 表示传入的文件满足条件
return flag
}
lishixinzhi/Article/program/Java/hx/201311/26918File
file
=
new
File("D:\\123.txt")
你这种不用绝对路径是不行的,
只有一个方法,在web工程启动servlet中获取到webroot路径,在servlet的init中使用String
webRoot
=
getServletContext().getRealPath("/")获取,然后使用这webRoot变量追加路径,再new
File(),这样的话要求就是,你的服务必须要启动,否则不会init,无法得到工程发布目录的相对路径
在java中路径都这么写:\\ , 这个就是路径分隔符,以后就不用“/”了吧不管是实在windows还是在linux中,你都用“\\”作为路径分隔符就对了
File.separator()这个方法是没什么问题,但是,你如果传入字符串后,
使用File.separator来split,可能会出错的哦,你在所有的地方,都用“\\”,
肯定是不会错的啦。
至于你说的json中也是,在java中就是用\\,这与json无关,而是转义导致的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)