System.FilePath
GPT-4.icon
System.FilePath モジュールは、Haskell においてファイルパスを操作するための関数群を提供するライブラリです。
このモジュールは、プラットフォームに依存せず、POSIX(Unix系)および Windows のファイルパス操作をサポートしています。具体的には、System.FilePath.Posix と System.FilePath.Windows の両方のインターフェースを提供し、これらは同じ関数セットを持っています。
ファイルパスの基本操作
ファイル名の取得:
takeFileName "/directory/file.ext" は "file.ext" を返します。
ディレクトリ名の取得:
takeDirectory "/directory/file.ext" は "/directory" を返します。
拡張子の取得:
takeExtension "/directory/file.ext" は ".ext" を返します。
拡張子の削除:
dropExtension "/directory/file.ext" は "/directory/file" を返します。
基本名の取得:
takeBaseName "/directory/file.ext" は "file" を返します。
ファイルパスの構築
ディレクトリとファイル名の結合:
"/directory" </> "file.ext" は "/directory/file.ext" を生成します。
ファイル名と拡張子の結合:
"/directory/file" <.> "ext" は "/directory/file.ext" を生成します。
拡張子の置換:
"/directory/file.txt" -<.> "ext" は "/directory/file.ext" を生成します。
使用例
1. Haskell モジュールの位置特定:
モジュール Test を Main からインポートする際の可能なファイルパスを探す例:
code:haskell
[replaceFileName path_to_main "Test" <.> ext | ext <- "hs", "lhs"] 2. URL からのファイルダウンロードと保存:
URL からファイルをダウンロードし、ディスクに保存する例:
code:haskell
do
let file = makeValid url
System.Directory.createDirectoryIfMissing True (takeDirectory file)
3. Haskell ファイルのコンパイル:
Haskell ファイルをコンパイルし、.hi ファイルを interface ディレクトリに配置する例:
code:haskell
takeDirectory file </> "interface" </> (takeFileName file -<.> "hi")