将提供文件夹中所有项目名称的函数

时间:2013-05-12 18:10:51

标签: java function

这是我必须做的,但我不知道从哪里开始:

  

编写一个程序,允许您从中浏览图像(gif,jpg)   指定目录。随后在窗口中显示图片,如   如下:

     
      
  • a)目录和图像之间的时间间隔(以秒为单位)是在程序开始时确定的   来自文件的信息,
  •   
  • b)图片以原始尺寸显示
  •   
  • c)将图像调整为框架
  •   

我知道这个非常基本的问题,但只是开始使用Java。 是否有某种功能,它会为我提供文件夹中所有项目的名称?

4 个答案:

答案 0 :(得分:6)

如果要为目录中的所有文件设置文件对象,请使用:

new File("path/to/directory").listFiles();

如果您只想使用名称

new File("path/to/directory").list();

答案 1 :(得分:3)

如果您只想要图像文件,可以使用File.listFiles( FileFilter filter )

 File[] files = new File( myPath ).listFiles( 
    new FileFilter() {
       boolean accept(File pathname) {
          String path = pathname.getPath();
          return ( path.endsWith(".gif") 
              || path.endsWith(".jpg")
              || ... );
       }
    });

答案 2 :(得分:1)

我假设您希望获取目录及其所有子目录中的所有图像。你走了:

    //Load all the files from a folder.
    File folder = new File(folderPathString);
    readDirectory(folder);


public static void readDirectory(File dir) throws IOException
{        

    File[] folder = dir.listFiles();//lists all the files in a particular folder, includes directories

    for (int i = 0; i < folder.length; i++) 
    {
        File file = folder[i];

        if (file.isFile() && (file.getName().endsWith(".gif") || file.getName().endsWith(".jpg"))
        {
                read(file);
        }

        else if (file.isDirectory())
        {
                readDirectory(file);
        }

    }
}

public static void read(File input) throws IOException
{
        //Do whatever you need to do with the file  
}

答案 3 :(得分:1)

如果您可以使用JDK 7,那么推荐的方式(如果我可以说)是:

public static void main(String[] args) throws IOException {


    Path dir = Paths.get("c:/some_dir");
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.{gif,png,jpg}")) {
        for (Path entry: stream) {
            System.out.println(entry);
        }
    }

}

它更高效,因为你得到的迭代器不一定能容纳所有条目。