请教个问题:我有一个文件,比如123.*,*表示我不知道它的后缀名,我怎么去判断这个文件存不存在呢?

Easince 发布于 2013/03/26 14:41
阅读 718
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

Java:我有一个文件,比如123.*,*表示我不知道它的后缀名,但是我确定它是由后缀的。

我如何去构建一个File,然后判断这个文件存不存在呢?

加载中
0
小耶果
小耶果
搜索该文件所在的文件夹(看情况是否需要递归),然后正则或字符判断搜索结果.
小耶果
小耶果
回复 @默默it : 除非有大量文件名相同,文件后缀不同的文件存在,否则效率没有问题.(不是搜索整个目录下的文件而是搜索指定"文件名.*"的文件哦).
Easince
Easince
这个效率是不是不太好啊
0
clt
clt
构建 文件所在 路径的 File,  列路径下的文件时加上 FileNameFilter , 有结果就是存在。
clt
clt
回复 @默默it : 预先把文件名存到 db 中, 从 db 中查。
Easince
Easince
感觉这个靠谱,有没有更加高效的呢?
0
只会百度的程序员
只会百度的程序员
// 文件路径什么都知道,就是不知道文件后缀?
File f = new File("包含路径和文件名的字符串");
if(f.exists()){
    // 文件存在
}
0
vvtf
vvtf

dir 123.*

ls 123.*

0
loyal
loyal
查看系统文件命令操作的返回结果,操作系统的命令的效率还是很高的.
0
lock_free
lock_free

apache common-io 包有个 WildcardFileFilter

File dir = new File(".");

FileFilter fileFilter = new WildcardFileFilter("sample*.java");
File[] files = dir.listFiles(fileFilter);
for (int i = 0; i < files.length; i++) {
  System.out.println(files[i]);
}

0
Hyacinthus_M
Hyacinthus_M
知道你其大概所在的目录吗? 比如/usr或者~下,即使不知道也可以grep 123. | ls来查看啊。你不知道,就只能大海捞针了,电脑又不是神,别太天真了,少年
0
b_lee
b_lee

直接遍历对应目录下的所有文件,速度很快的,特别是在linux下

因为一个目录也是一个特殊的文件,遍历一个文件夹下的文件其实是单个读取这个特殊文件的内容而已

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部