Elixir語言中 File.cp_r
相關用法介紹如下。
用法:
cp_r(source, destination, callback \\ fn _, _ -> true end)
@spec cp_r(Path.t(), Path.t(), (Path.t(), Path.t() -> boolean())) ::
{:ok, [binary()]} | {:error, posix(), binary()}
遞歸地將source
中的內容複製到destination
,保持源目錄結構和模式。
如果source
是文件或指向它的符號鏈接,則destination
必須是指向現有文件的路徑、指向某個文件的符號鏈接或指向不存在文件的路徑。
如果source
是一個目錄或指向它的符號鏈接,那麽destination
必須是一個存在的directory
或指向某個目錄的符號鏈接,或指向不存在的目錄的路徑。
如果源是文件,它會將 source
複製到 destination
。如果source
是一個目錄,它會將源代碼中的內容複製到destination
目錄中。
如果目標中已存在文件,則調用 callback
。 callback
必須是一個接受兩個參數的函數:source
和 destination
。如果應覆蓋現有文件,則回調應返回true
,否則返回false
。
此函數在複製文件時可能會失敗,在這種情況下,它將使目標目錄處於髒狀態,其中已經複製的文件不會被刪除。
該函數在成功的情況下返回{:ok, files_and_directories}
,files_and_directories
列出所有複製的文件和目錄,沒有特定的順序。否則返回{:error, reason, file}
。
注意:Unix-like 係統中的命令cp
的行為會有所不同,具體取決於destination
是否為現有目錄。我們已選擇明確禁止這種行為。如果source
是file
並且destination
是目錄,則將返回{:error, :eisdir}
。
例子
# Copies file "a.txt" to "b.txt"
File.cp_r("a.txt", "b.txt")
# Copies all files in "samples" to "tmp"
File.cp_r("samples", "tmp")
# Same as before, but asks the user how to proceed in case of conflicts
File.cp_r("samples", "tmp", fn source, destination ->
IO.gets("Overwriting #{destination} by #{source}. Type y to confirm. ") == "y\n"
end)
相關用法
- Elixir File.rm用法及代碼示例
- Elixir File.rmdir用法及代碼示例
- Elixir File.exists?用法及代碼示例
- Elixir File.touch!用法及代碼示例
- Elixir File.stream!用法及代碼示例
- Elixir File.rename用法及代碼示例
- Elixir File.open用法及代碼示例
- Elixir File.rm_rf用法及代碼示例
- Elixir File.regular?用法及代碼示例
- Elixir File.touch用法及代碼示例
- Elixir File.dir?用法及代碼示例
- Elixir File用法及代碼示例
- Elixir Float.to_charlist用法及代碼示例
- Elixir Float.ratio用法及代碼示例
- Elixir Float.to_string用法及代碼示例
- Elixir Function.identity用法及代碼示例
- Elixir Float.ceil用法及代碼示例
- Elixir Float.pow用法及代碼示例
- Elixir Function用法及代碼示例
- Elixir Function.info用法及代碼示例
- Elixir Function.capture用法及代碼示例
- Elixir Float.round用法及代碼示例
- Elixir Float.floor用法及代碼示例
- Elixir Float.parse用法及代碼示例
- Elixir StringIO.flush用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 File.cp_r(source, destination, callback \\ fn _, _ -> true end)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。