کتابخانه‌ی استاندارد · سیستم و ابزار

مسیر fs/path

کار با مسیر پرونده‌ها: پیوند زدن، جدا کردن نام و پسوند، مسیر مطلق و نسبی و بررسی امنیت.

واردسازی سیستم پرونده.مسیر
در این صفحه
  1. گونه‌ها
  2. روال‌ها

مسیرها را با چسباندن رشته‌ها نسازید؛ پیوند جداکننده‌ی درست را خودش می‌گذارد. وقتی مسیری از کاربر می‌گیرید، پیش از باز کردن با مسیر امن است بررسی کنید که کسی با ../.. از پوشه‌ی مجاز بیرون نزند.

گونه‌ها

اجزای مسیر PathParts

ساختار اجزای مسیر
دو بخش یک مسیر.
نامانگلیسیگونهتوضیح
dirdirرشته = ""بخش پوشه.
basebaseرشته = ""نام پرونده.
fs-path-Join.salam
واردسازی سیستم پرونده.مسیر

روال ریشه:
    پ := مسیر.پیوند("/home/sara"، "docs/cv.pdf")
    سرچاپ پ
    ت := مسیر.تقسیم(پ)
    سرچاپ ت.dir، ت.base
    سرچاپ مسیر.نام پوشه(پ)، مسیر.پوشه والد(پ)، مسیر.نام پرونده(پ)، مسیر.نام پایه(پ)
    سرچاپ مسیر.پسوند(پ)، مسیر.نام بدون پسوند(پ)
    سرچاپ مسیر.نرمال سازی("/a/./b/../c//d")، مسیر.پاک سازی("a/b/../../c")
    سرچاپ مسیر.مطلق است(پ)، مسیر.مطلق است("docs")، مسیر.مطلق است(مسیر.مسیر مطلق("docs"))
    سرچاپ مسیر.مسیر نسبی("/home/sara"، "/home/sara/docs/cv.pdf")
    سرچاپ مسیر.مسیر امن است("/srv/files"، "a/b.txt")، مسیر.مسیر امن است("/srv/files"، "../../etc/passwd")
    سرچاپ مسیر.اعتبارسنجی مسیر("docs/cv.pdf")، مسیر.اعتبارسنجی مسیر("")
پایان
خروجی/home/sara/docs/cv.pdf /home/sara/docs cv.pdf /home/sara/docs /home/sara/docs cv.pdf cv .pdf cv /a/./b/../c//d c true false true docs/cv.pdf true false true false

روال‌ها

پیوند Join

روال پیوند(a: رشته، b: رشته): رشته
دو بخش مسیر را با جداکننده‌ی درست به هم پیوند می‌زند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

تقسیم Split

روال تقسیم(p: رشته): اجزای مسیر
مسیر را به پوشه و نام پرونده تقسیم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

نرمال سازی Normalize

روال نرمال سازی(p: رشته): رشته
جداکننده‌های \ ویندوز را به / تبدیل می‌کند؛ کار دیگری نمی‌کند. برای ساده کردن .. و .، پاک سازی را ببینید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

پاک سازی Clean

روال پاک سازی(p: رشته): رشته
مسیر را ساده می‌کند: . و .. را حل می‌کند و جداکننده‌های تکراری را برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

مطلق است IsAbs

روال مطلق است(p: رشته): منطقی
اگر مسیر مطلق باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

مسیر مطلق Abs

روال مسیر مطلق(p: رشته): رشته
مسیر را نسبت به پوشه‌ی جاری مطلق می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

مسیر نسبی Rel

روال مسیر نسبی(base: رشته، target: رشته): رشته
مسیر target را نسبت به base می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

پوشه والد Parent

روال پوشه والد(p: رشته): رشته
پوشه‌ی والد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

نام پوشه Dirname

روال نام پوشه(p: رشته): رشته
بخش پوشه‌ی مسیر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

نام پرونده Filename

روال نام پرونده(p: رشته): رشته
نام پرونده همراه با پسوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

نام پایه Basename

روال نام پایه(p: رشته): رشته
نام پرونده بدون پوشه؛ مثل نام پرونده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

پسوند Ext

روال پسوند(p: رشته): رشته
پسوند، همراه با نقطه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

نام بدون پسوند Stem

روال نام بدون پسوند(p: رشته): رشته
نام پرونده بدون پسوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

مسیر امن است IsSafe

روال مسیر امن است(base: رشته، p: رشته): منطقی
اگر مسیر داده‌شده، پس از ساده شدن، درون پوشه‌ی base بماند، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam

اعتبارسنجی مسیر Validate

روال اعتبارسنجی مسیر(p: رشته): منطقی
اگر مسیر خالی نباشد، درست برمی‌گرداند؛ بررسی دیگری انجام نمی‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fs-path-Join.salam