java怎样获得某个目录下所有文件的文件名

星辰~ 发布于 2012/03/29 16:45
阅读 25K+
收藏 1

1、如下方式能够得到服务器上E:\\test\\文件夹下所有文件:

File file = new File("E:\\test\\");
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
  if(!files[i].isDirectory()){
     files[i];
  }
}

2、我配置的一个域名,可能访问到E:\\test\\这个文件夹,如:http://www.text.com/

怎样通过这个域名获得域名下所有的文件名,谢谢。

加载中
0
黛曦葛溪
黛曦葛溪
我现在也在做这个,你怎么解决的啊?可以说一下吗?
星辰~
星辰~
应用ftp协议可以实现,具体如下: http://my.oschina.net/skyfree/blog/52022
0
Andre.Z
Andre.Z
真如你所说,那么,所有网站的文件全部都得现形了,不实际吧。薯大马上就会有烦恼了。
Andre.Z
Andre.Z
@星辰~ : 一般默认是允许查看目录文件,但是实际都是禁止这个的。你是只想查你自己的服务器的,还是想把别人的也查出来啊?
星辰~
星辰~
理论上应该是可以的,访问网站都能看到页面文件名
0
一号男嘉宾
一号男嘉宾

递归吧。貌似没有现成的方法。或者你在你的服务器上面搞个ftp,ftp4j里面有个现成方法能一次全部获取出来。

一号男嘉宾
一号男嘉宾
我估计我误会你的意思了,你是要获取文件夹的还是http目录下面的?
星辰~
星辰~
这是不知道怎样查出来
0
JustForFly
JustForFly

Class.getResource()方法,可以返回class文件的绝对路径。

0
xoHome
xoHome
你是要通过后台程序查出文件名返回到客户端?  先获取项目所在根路径,然后通过你上述的方法获取文件列表,然后获取文件名。
星辰~
星辰~
我的后台程序与要获得文件名的文件不在一台服务器,例如:我本地写个程序,想获得http://www.google.com/news/下的所有文件名
0
Monkey
Monkey
这要是让你知道不就是黑客了啊,人家还把文件给修改了,给你删除了,替换了。这不是天下大乱啊。
星辰~
星辰~
我们的网站前台能访问到的页面文件名也都是可能知道的,没什么安全风险
0
jeffsui
jeffsui

呵呵 你只能获得站点项目下的某一个路径的文件和文件夹,不能获得站点Root任意目录下的所有文件。

this.getServletContext().getRealPath("upload");

0
duty
duty
服务器禁止目录列表就不能通过正常渠道查看。。
星辰~
星辰~
我目前需求是查看不禁用的目录,是否有办法
0
wartskcaj
wartskcaj
不能的,只能穷举所有可能的文件名,一个一个去请求,404就说明没有,200则代表你命中了
星辰~
星辰~
看来只能用ftp协议了
0
duty
duty
URL url = new URL("http://localhost/");
URLConnection uc = url.openConnection();
InputStreamReader is = new InputStreamReader( uc.getInputStream() );
int line;
while ( ( line = is.read()) != -1 ) {
System.out.print( ( char ) line);
}

试试,获得的是html格式的。需要你去解析。
星辰~
星辰~
@breaking : 主要是想获得所有的文件名,循环进行下载
duty
duty
@星辰~ 有默认页面就不行了。。http协议做不到列举文件名。是服务器做的工作,如果没有默认页面会返回文件列表。
星辰~
星辰~
这是获得一个页面,是http://localhost/下默认访问的页面,我想得到的是一个目录下所有的文件名,是否可以,谢谢
返回顶部
顶部