[解決済み] scalaでサブディレクトリ内の全ファイルをリストアップするには?
2023-02-05 12:14:08
質問
ディレクトリ内のファイルを再帰的にリストする良い "scala-esque" (私は機能的という意味だと思います) 方法はありますか?特定のパターンに一致させることはどうですか?
例えば、再帰的にマッチするすべてのファイル
"a*.foo"
で
c:\temp
.
どのように解決するのですか?
Scalaのコードは通常、ディレクトリの読み込みを含むI/Oを処理するためにJavaのクラスを使用します。 そのため、以下のようなことをしなければなりません。
import java.io.File
def recursiveListFiles(f: File): Array[File] = {
val these = f.listFiles
these ++ these.filter(_.isDirectory).flatMap(recursiveListFiles)
}
すべてのファイルを集めて、正規表現を使ってフィルタリングすることができます。
myBigFileArray.filter(f => """.*\.html$""".r.findFirstIn(f.getName).isDefined)
あるいは、再帰検索に正規表現を組み入れることもできます。
import scala.util.matching.Regex
def recursiveListFiles(f: File, r: Regex): Array[File] = {
val these = f.listFiles
val good = these.filter(f => r.findFirstIn(f.getName).isDefined)
good ++ these.filter(_.isDirectory).flatMap(recursiveListFiles(_,r))
}
関連
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み] Scalaのcase classとclassの違いは何ですか?
-
[解決済み】Scalaの「リフティング」とは何ですか?
-
[解決済み] Scala:1ステートメントで文字列をファイルに書き込む
-
[解決済み】Scalaはどこでimplicitを探すのか?
-
[解決済み] Scala NilとList()の比較
-
[解決済み] Scalaのパターンマッチはバイトコードレベルでどのように実装されているのですか?
-
[解決済み] Scalaのリストを作成するための好ましい方法
-
[解決済み] ジッパーがコモナドである理由を理解する
-
[解決済み] Scalaで2つ以上のリストをまとめてzipで圧縮することはできますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Scalaの配列の初期化
-
[解決済み] Any、AnyVal、AnyRef、Objectの関係と、Javaコードでのマッピングについて教えてください。
-
[解決済み] Scala の Case Classes のオーバーロード・コンストラクタ?
-
[解決済み] build.sbtとbuild.scalaの違いは何ですか?
-
[解決済み] scala で複数の case class をマッチングさせる
-
[解決済み] Scala型プログラミングリソース
-
[解決済み] Spark ScalaのDataFrameのカラム名のリネーム
-
[解決済み] Scalaのtraitでvalとdefの使い分けは?
-
[解決済み] IntelliJ IDEAでSBTを使用してUber JAR (Fat JAR)をビルドする方法は?
-
[解決済み] Scalaで2つ以上のリストをまとめてzipで圧縮することはできますか?