Clojure:
ตรวจสอบว่ามีไดเร็กทอรีหรือไม่
วิธีทำ:
Clojure, ในฐานะภาษา JVM, สามารถใช้ประโยชน์จากคลาส java.io.File
ของ Java สำหรับวัตถุประสงค์นี้ คุณไม่จำเป็นต้องใช้ไลบรารีภายนอกสำหรับการดำเนินการพื้นฐานเช่นนี้ นี่คือวิธีทำ:
(import 'java.io.File)
(defn directory-exists? [dir-path]
(let [dir (File. dir-path)]
(.exists dir)))
;; ตัวอย่างการใช้งาน
(println (directory-exists? "/path/to/your/directory")) ;; true or false
ฟังก์ชันนี้, directory-exists?
, รับที่อยู่โฟลเดอร์เป็นสตริงและคืนค่า true
ถ้าโฟลเดอร์มีอยู่จริง และ false
ในกรณีอื่น ๆ นี่ถูกทำได้ด้วยการสร้างวัตถุ File
ด้วยที่อยู่โฟลเดอร์แล้วเรียกเมธอด .exists
บนวัตถุนี้
นอกจากการใช้งาน Java แบบดิบแล้ว คุณยังสามารถใช้ไลบรารี Clojure ที่ซ่อนรายละเอียดของ Java เหล่านั้นไว้ ไลบรารีหนึ่งที่ทำเช่นนี้คือ clojure.java.io
อย่างไรก็ตาม, สำหรับการตรวจสอบว่ามีโฟลเดอร์อยู่หรือไม่ คุณอาจยังคงใช้คลาส File
แต่คุณอาจพบว่าไลบรารีมีประโยชน์สำหรับการดำเนินการกับไฟล์อื่น ๆ ตัวอย่าง:
(require '[clojure.java.io :as io])
(defn directory-exists?-clojure [dir-path]
(.exists (io/file dir-path)))
;; ตัวอย่างการใช้งาน
(println (directory-exists?-clojure "/another/path/to/check")) ;; true or false
เวอร์ชันนี้ค่อนข้างคล้ายกัน แต่ใช้ฟังก์ชัน Clojure io/file
เพื่อสร้างวัตถุ File
วิธีนี้ผสมผสานเข้ากับฐานโค้ด Clojure ได้อย่างเป็นธรรมชาติมากขึ้นโดยใช้ประโยชน์จากไลบรารีของ Clojure สำหรับการดำเนินการ IO มากกว่าการใช้งานคลาส Java โดยตรง