Topic: 请教:如何取得某一目录下的所有文件名? |
Print this page |
1.请教:如何取得某一目录下的所有文件名? | Copy to clipboard |
Posted by: focus Posted on: 2005-09-13 11:32 请教:如何取得某一目录下的所有文件名? |
2.Re:请教:如何取得某一目录下的所有文件名? [Re: focus] | Copy to clipboard |
Posted by: why Posted on: 2005-09-13 11:38 http://javaalmanac.com/egs/java.io/GetFiles.html |
3.Re:请教:如何取得某一目录下的所有文件名? [Re: focus] | Copy to clipboard |
Posted by: JavaandC Posted on: 2005-09-13 12:21 在IO包里面有个 list(); 返回当前目录下的所有文件 list(FilenameFilter filter);通过过滤器返回当前目录下符合你想要的所有文件 这两个方法全部返回String 数组 |
4.Re:请教:如何取得某一目录下的所有文件名? [Re: focus] | Copy to clipboard |
Posted by: focus Posted on: 2005-09-13 14:47 谢谢各位大虾了!还介绍了个不错的网站。外国人的东西确实好啊。 初学java不久,多多关照。 我们用的QQ程序,在你发送或者接收一些图片时,程序将会自动把这些图片存到这样的文件夹中去(如:D:\Program Files\Tencent\QQ\93708213\image)。 确实很方便,但是有个漏洞,就是:它会保存大量同样的图片,即发送/接收一次便重复保存一次。我的文件夹里的500张图片中大约80张都是相同的,删起来很不方便。与是就编写了下面的代码: /* * Created on 2005/09/13 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package deleteImage; import java.io.File; import java.util.HashSet; import java.util.Set; /** * @author laojiao * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class deleteImage { public static void main(String args[]){ Set fileLenSet = new HashSet(); File fdir = new File("D:\\image"); String[] fileList = fdir.list(); if (fileList == null) { //Either dir does not exist or is not a directory System.out.println("This directory doesn't exists!"); } else { for (int i=0; i<fileList.length; i++) { // Get filename of file or directory String filename = fileList[i]; //System.out.println("D:\\image"+" Images"+i+" "+filename); if (filename.startsWith("{") && (filename.lastIndexOf("}") > (filename.length()-7))){ File f = new File("D:\\image" +"\\"+ filename); if ( fileLenSet.contains( Long.toString(f.length()) ) ){ f.delete(); System.out.println("The image of " +filename+ " " + "created by QQ.exe automaticly on"+ f.lastModified()+ "that is be deleted."); } fileLenSet.add( Long.toString(f.length()) ); } } } } } |
5.Re:请教:如何取得某一目录下的所有文件名? [Re: focus] | Copy to clipboard |
Posted by: focus Posted on: 2005-09-13 14:51 很土的方法,而且不够精确。 我想用 直接分辩二进制(图片就是而进制流)的办法 肯定会很准确的,但是不知道该用什么样的类的什么样的方法。 各位哥哥有什么高见啊? |
6.Re:请教:如何取得某一目录下的所有文件名? [Re: focus] | Copy to clipboard |
Posted by: JavaandC Posted on: 2005-09-13 16:11 你可以在保存接收来的文件之前,先让程序检测是否有重复的文件存在,如果有你可以用改名的方式,自动将新文件的名字改掉,改成什么形式的名字,那就要看你自己想改成什么样的名字了。 检测当前文件是否存在的方法: 在IO包内: exists(); 返回boolean值 |
7.Re:请教:如何取得某一目录下的所有文件名? [Re: focus] | Copy to clipboard |
Posted by: JavaandC Posted on: 2005-09-13 16:12 还有: 更改文件名的方法: 也在IO包内: renameTo(File); 同样返回boolean值 |
8.Re:请教:如何取得某一目录下的所有文件名? [Re: focus] | Copy to clipboard |
Posted by: JavaandC Posted on: 2005-09-13 16:18 当然如果程序利用上面的方法判断这个文件已经存在的话,你可以不进行保存呀。 |
9.Re:请教:如何取得某一目录下的所有文件名? [Re: focus] | Copy to clipboard |
Posted by: q_yuan Posted on: 2005-09-14 08:48 先判断是不是目录,再用文件列表!不就OK了 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |