Я не могу найти каталог при вызове getClass.getResource ()
путь src -> main -> resources -> RocheFiles
Я пробовал абсолютный путь. В настоящее время у меня есть 39 CSV-файлов в каталоге RocheFiles.
val testCaseDirectory = getClass.getResource("/RocheFiles")
val directory = new File(testCaseDirectory.getPath)
val testCases = if (directory.exists && directory.isDirectory) {
directory
.list
.map(s => new File(directory.getAbsolutePath + "/" + s))
.filter(s => s.exists && s.isDirectory)
.sortBy(f => f.getName)
.toList
} else List.empty
println(testCaseDirectory)
println(directory)
println(testCases)
Вот результаты печати:
jar:file:/var/folders/yr/tvnq7crd3mvdn0s3kyv_q4t00000gn/T/sbt_43463083/job-10/target/d5caefa1/rocheapp_2.12-0.1.0.jar!/RocheFiles
file:/var/folders/yr/tvnq7crd3mvdn0s3kyv_q4t00000gn/T/sbt_43463083/job-10/target/d5caefa1/rocheapp_2.12-0.1.0.jar!/RocheFiles
List()
List()
Я пытался
val testCaseDirectory = getClass.getResource("/RocheFiles")
val directory = new File(testCaseDirectory.getPath)
// for c,d,e,f
val cdef = directory.listFiles.toList
.filter(_.isDirectory)
.flatMap(p => new File(p.getPath).listFiles)
println(cdef)
все еще получаю исключение нулевого указателя
[error] Total time: 2 s, completed Oct 12, 2019, 12:55:09 AM
sbt:rocheApp> run
[error] (run-main-c) java.lang.NullPointerException
[error] java.lang.NullPointerException
Я могу получить по одному файлу за раз - используя это: Не знаю, как читать в каталоге и перебирать каждый CSV-файл.
override def readRoche(): List[List[String]] = {
for {
line <- Source.fromFile(fileName).getLines().toList
values = line.split('|').toList
} yield values}
}
Это выполнение CSVReader.
val rocheLines = new CSVReader("src/main/resources/RocheFiles/BP40331_UBSC_QRS3_PROD_OPEN_20190926121416.csv").readRoche()
ОБНОВЛЕНИЕ: я переместил каталог за пределы каталога ресурсов, и я могу читать в CSV-файле, используя приведенный ниже код
def getListOfFiles(dir: String):List[File] = {
val d = new File(dir)
if (d.exists && d.isDirectory) {
d.listFiles.filter(_.isFile).toList
} else {
List[File]()
}
}
val testCaseDirectory = getListOfFiles("src/main/scala/corp/marshconsult/bracketProjects/rocheApp/RocheFiles")
До сих пор не уверен, почему яЯ могу найти отдельные файлы в каталоге ресурсов, но не каталог внутри каталога ресурсов.