从目录

时间:2017-07-24 09:56:57

标签: java file directory

我想从目录中读取文件。在此目录中,有八个具有相同扩展名的附加文件(.csv)。同样,文件名不是直接知道的。 该文件的名称如下所示:

test_file_1_2017_06_24.csv

但是如果我第二天调用该目录,它可以改变。然后文件名是:

test_file_2_2017_06_25.csv或test_file_1_2017_06_25。

文件名和日期更改。 有没有办法在Java中读取文件“变量”或读取文件,但不知道确切的名称?目录总是相同的(“H:/)”(文件读取后,文件分别使用split()进一步处理结果字符串)。 谢谢你的回答!

编辑:阅读目录并仅显示csv-Files

File dir = new File("H:/");

    File[] fileArray = dir.listFiles(new FilenameFilter() {  

        public boolean accept(File dir, String name) {
            return name.endsWith(".csv");
        }
    });
    for(File f: fileArray){
        System.out.println(f.getName());
    }

2 个答案:

答案 0 :(得分:0)

File directory = new File("H:/");

File[] allFilesInDir = directory.listFiles();

请参阅https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles()

您还可以提供FilenameFilter来获取.csv文件:

File[] allCsvFiles = directory.listFiles( new FilenameFilter() {
  public boolean accept(File dir, String name) {
    if ( name.toUpperCase().endsWith(".CSV") ) {
      return new File(dir,name).isFile(); // Make sure we don't accept sub-directories ending in .csv
    }
  }
});

答案 1 :(得分:0)

您可以使用以下代码浏览文件夹,检查csv文件并使用它。希望它有所帮助。

namespace Web.Controllers
{
    public class DataController : ApiController
    {
        private readonly ILog _log;
        public Dictionary<string, string> Modules { get; set; } // << I want these to be injected!
        public Dictionary<string, string> Data { get; set; }    // <<

        public DataController(ILog log) // gets injected
        {
            _log = log;
        }
    }
}