디렉토리의 모든 파일 목록 가져 오기 (재귀 적)
디렉토리와 하위 디렉토리에있는 파일 목록을 가져 오려고합니다 (인쇄가 아니라 간단합니다).
난 노력 했어:
def folder = "C:\\DevEnv\\Projects\\Generic";
def baseDir = new File(folder);
files = baseDir.listFiles();
나는 디렉토리 만 얻습니다. 나는 또한 시도했다 :
def files = [];
def processFileClosure = {
println "working on ${it.canonicalPath}: "
files.add (it.canonicalPath);
}
baseDir.eachFileRecurse(FileType.FILES, processFileClosure);
그러나 "파일"은 폐쇄 범위에서 인식되지 않습니다.
목록은 어떻게 얻습니까?
이 코드는 나를 위해 작동합니다.
import groovy.io.FileType
def list = []
def dir = new File("path_to_parent_dir")
dir.eachFileRecurse (FileType.FILES) { file ->
list << file
}
이후 목록 변수에는 주어진 디렉토리와 그 하위 디렉토리의 모든 파일 (java.io.File)이 포함됩니다.
list.each {
println it.path
}
최신 버전의 Groovy (1.7.2+)는 JDK 확장을 제공하여 디렉토리의 파일을보다 쉽게 탐색 할 수 있습니다. 예를 들면 다음과 같습니다.
import static groovy.io.FileType.FILES
def dir = new File(".");
def files = [];
dir.traverse(type: FILES, maxDepth: 0) { files.add(it) };
더 많은 예는 [1]을 참조하십시오.
[1] http://mrhaki.blogspot.nl/2010/04/groovy-goodness-traversing-directory.html
The following works for me in Gradle / Groovy for build.gradle
for an Android project, without having to import groovy.io.FileType
(NOTE: Does not recurse subdirectories, but when I found this solution I no longer cared about recursion, so you may not either):
FileCollection proGuardFileCollection = files { file('./proguard').listFiles() }
proGuardFileCollection.each {
println "Proguard file located and processed: " + it
}
참고URL : https://stackoverflow.com/questions/3953965/get-a-list-of-all-the-files-in-a-directory-recursive
'programing' 카테고리의 다른 글
C #에서 volatile 키워드의 사용법 설명 (0) | 2020.09.12 |
---|---|
WCF 서비스, 시간 제한을 늘리는 방법은 무엇입니까? (0) | 2020.09.11 |
동적으로 추가 된 요소에 이벤트 리스너를 추가하는 Jquery (0) | 2020.09.11 |
Windows에서 Spark를 설정하는 방법은 무엇입니까? (0) | 2020.09.11 |
Android : HttpClient 요청의 상태 코드를 가져 오는 방법 (0) | 2020.09.11 |