ফাংশন যা পিতামাতার ডিরেক্টরিটি পরম পাথ দেয়


10
    (parent-dir "/home/sk/parent/ab.el")

দেয়

    "/home/sk/parent"

তারপর,

(parent-dir "/home/sk/parent")

দেয়

"/home/sk"

যে কোনও এলিস্প ফাংশন যেমন parent-dirফাইল পাথ এবং দির পাথ উভয়ের জন্য বেসপথ দেয়?

উত্তর:


14

file-name-directory আপনি যা অনুরোধ করেন তা করে

যাইহোক, (file-name-directory "/home/sk/parent/")(একটি পিছনে স্ল্যাশ সহ) একই ডিরেক্টরিটি প্রদান করে, এর পিতামাতার নয়।

আমি যা অনুমান করছি আপনি সত্যিই এটি চান এটি করে:

(file-name-directory (directory-file-name "/home/sk/parent/ab.el")) ; => "/home/sk/parent/"
(file-name-directory (directory-file-name "/home/sk/parent/")) ; => "/home/sk/"
(file-name-directory (directory-file-name "/home/sk/parent")) ; => "/home/sk/"

এবং লাইব্রেরি ডায়ার্ড + এই ফাংশনটি ব্যবহার করে:

(defun diredp-parent-dir (file &optional relativep)
  "Return the parent directory of FILE, or nil if none.
Optional arg RELATIVEP non-nil means return a relative name, that is,
just the parent component."
  (let ((parent  (file-name-directory (directory-file-name (expand-file-name file))))
        relparent)
    (when relativep
      (setq relparent  (file-name-nondirectory (directory-file-name parent))))
    (and (not (equal parent file))  (or relparent  parent))))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.