Моя постановка проблемы выглядит следующим образом:
1) У меня есть путь до папки.Я должен пройти по этому пути.Проверьте, есть ли какие-либо подпапки и файлы в этом пути.Если да, сопоставьте содержимое папки (списки) с массивом.Если это соответствует, примите это как новый путь.
2) Использование нового пути.Перечислите файлы по этому пути.
Я могу сделать все, кроме сравнения lists
и array
.Ниже мой код:
import java.text.SimpleDateFormat
import java.util.Calendar
import java.io.File
class ListingDirectories {
def getListOfDirectories(dir: String): List[File] = {
val d = new File(dir)
if (d.exists && d.isDirectory) {
d.listFiles().filter(_.isDirectory()).toList
} else {
List[File]()
}
}
def getListOfFiles(dir: String): List[File] = {
val d = new File(dir)
if (d.exists && d.isDirectory()) {
d.listFiles().filter(_.isFile()).toList
} else {
List[File]()
}
}
}
object FirstSample {
def main(args: Array[String]) {
val ld = new ListingDirectories()
val directoriesList = ld.getListOfDirectories("C:/Users/Siddheshk2/Desktop/CENSUS").toList
println(directoriesList + "\n")
val directoriesListReplaced = directoriesList.toString().replace("//", "/")
// println(directoriesListReplaced.indexOf("C:/Users/Siddheshk2/Desktop/CENSUS/SAMPLE"))
var finalString = ""
var s = Array("C:/Users/Siddheshk2/Desktop/CENSUS/SAMPLE")
for (x <- s) {
if (x.equals(directoriesListReplaced)) {
finalString = s(0)
} else {
println("No matching strings")
}
}
val filesList = ld.getListOfFiles(finalString)
println(filesList.toString())
}
}
Мне просто нужно сравнить значения из списка и массива и взять его как новый путь в переменной finalString
, чтобы передать следующий метод, который является getListOfFiles
.Я понял, так как я возвращаю List[file]
в методах, я не могу получить доступ к элементам внутри него.Может ли кто-нибудь помочь мне понять, где я иду не так?ТИА