在Java中打开由通配符指定的目录中的文件

时间:2011-09-21 22:16:32

标签: java file wildcard

在Java中,在尝试创建文件对象时,是否可以使用通配符指定目录?

File newFile = new File("\temp\*\path");

在这种情况下,目录是由我无权访问的其他代码部分创建的,这会在名称中添加时间戳。所以如果我可以用*代替时间戳,问题就会解决,比如

 File newFile = new File("\temp\dirname-*\path");  // * is timestamp when directory was created.

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

如果你是一名程序员,你应该知道“我确信在那个地方存在一个目录”这样的陈述是真的,直到它们是假的(并且他们在某一点)。

查看\temp\的工作,确认只有一个目录,然后使用正确的路径打开文件。然后,当前提条件不为真时,您可以抛出异常或显示消息。

答案 1 :(得分:1)

无法按照您的描述创建它。但是,可以编写算法来搜索符合描述的文件。在您的情况下,您可能希望创建一个new File("temp"),然后递归搜索其子项(对于listFiles方法返回true的任何文件,使用isDirectory)查找名为{{的文件1}}。

答案 2 :(得分:0)

不可以,在Java中的文件名中不能使用通配符。

您需要自己解决路径,但这并不困难。

您可能会找到

new java.io.File("/tmp").listFiles();

一个有趣的起点。