Filesystem
Base.read
— Methodread(filename::AbstractString)
اقرأ المحتويات الكاملة لملف كـ Vector{UInt8}
.
read(filename::AbstractString, String)
اقرأ المحتويات الكاملة لملف كسلسلة نصية.
read(filename::AbstractString, args...)
افتح ملفًا واقرأ محتوياته. يتم تمرير args
إلى read
: هذا يعادل open(io->read(io, args...), filename)
.
Base.write
— Methodwrite(filename::AbstractString, content)
اكتب التمثيل الثنائي القياسي لـ content
إلى ملف، والذي سيتم إنشاؤه إذا لم يكن موجودًا بعد أو سيتم الكتابة فوقه إذا كان موجودًا.
أعد عدد البايتات المكتوبة في الملف.
Base.Filesystem.pwd
— Functionpwd() -> String
احصل على دليل العمل الحالي.
أمثلة
julia> pwd()
"/home/JuliaUser"
julia> cd("/home/JuliaUser/Projects/julia")
julia> pwd()
"/home/JuliaUser/Projects/julia"
Base.Filesystem.cd
— Methodcd(dir::AbstractString=homedir())
قم بتعيين الدليل الحالي.
انظر أيضًا: pwd
, mkdir
, mkpath
, mktempdir
.
أمثلة
julia> cd("/home/JuliaUser/Projects/julia")
julia> pwd()
"/home/JuliaUser/Projects/julia"
julia> cd()
julia> pwd()
"/home/JuliaUser"
Base.Filesystem.cd
— Methodcd(f::Function, dir::AbstractString=homedir())
تغيير الدليل الحالي مؤقتًا إلى dir
، تطبيق الدالة f
وأخيرًا العودة إلى الدليل الأصلي.
أمثلة
julia> pwd()
"/home/JuliaUser"
julia> cd(readdir, "/home/JuliaUser/Projects/julia")
34-element Array{String,1}:
".circleci"
".freebsdci.sh"
".git"
".gitattributes"
".github"
⋮
"test"
"ui"
"usr"
"usr-staging"
julia> pwd()
"/home/JuliaUser"
Base.Filesystem.readdir
— Functionreaddir(dir::AbstractString=pwd();
join::Bool = false,
sort::Bool = true,
) -> Vector{String}
إرجاع الأسماء في الدليل dir
أو الدليل الحالي إذا لم يتم تقديمه. عندما يكون join
غير صحيح، فإن readdir
يعيد فقط الأسماء في الدليل كما هي؛ عندما يكون join
صحيحًا، فإنه يعيد joinpath(dir, name)
لكل name
بحيث تكون السلاسل المعادة مسارات كاملة. إذا كنت تريد الحصول على مسارات مطلقة، استدعِ readdir
مع مسار دليل مطلق وjoin
مضبوطًا على صحيح.
بشكل افتراضي، يقوم readdir
بفرز قائمة الأسماء التي يعيدها. إذا كنت تريد تخطي فرز الأسماء والحصول عليها بالترتيب الذي تسردها به نظام الملفات، يمكنك استخدام readdir(dir, sort=false)
للاختيار بعدم الفرز.
انظر أيضًا: walkdir
.
تتطلب وسائط الكلمات الرئيسية join
و sort
على الأقل Julia 1.4.
أمثلة
julia> cd("/home/JuliaUser/dev/julia")
julia> readdir()
30-element Array{String,1}:
".appveyor.yml"
".git"
".gitattributes"
⋮
"ui"
"usr"
"usr-staging"
julia> readdir(join=true)
30-element Array{String,1}:
"/home/JuliaUser/dev/julia/.appveyor.yml"
"/home/JuliaUser/dev/julia/.git"
"/home/JuliaUser/dev/julia/.gitattributes"
⋮
"/home/JuliaUser/dev/julia/ui"
"/home/JuliaUser/dev/julia/usr"
"/home/JuliaUser/dev/julia/usr-staging"
julia> readdir("base")
145-element Array{String,1}:
".gitignore"
"Base.jl"
"Enums.jl"
⋮
"version_git.sh"
"views.jl"
"weakkeydict.jl"
julia> readdir("base", join=true)
145-element Array{String,1}:
"base/.gitignore"
"base/Base.jl"
"base/Enums.jl"
⋮
"base/version_git.sh"
"base/views.jl"
"base/weakkeydict.jl"
julia> readdir(abspath("base"), join=true)
145-element Array{String,1}:
"/home/JuliaUser/dev/julia/base/.gitignore"
"/home/JuliaUser/dev/julia/base/Base.jl"
"/home/JuliaUser/dev/julia/base/Enums.jl"
⋮
"/home/JuliaUser/dev/julia/base/version_git.sh"
"/home/JuliaUser/dev/julia/base/views.jl"
"/home/JuliaUser/dev/julia/base/weakkeydict.jl"
Base.Filesystem.walkdir
— Functionwalkdir(dir; topdown=true, follow_symlinks=false, onerror=throw)
إرجاع مُكرِّر يمشي في شجرة الدليل لدليل معين. يُرجع المُكرِّر مجموعة تحتوي على (rootpath, dirs, files)
. يمكن التنقل في شجرة الدليل من الأعلى إلى الأسفل أو من الأسفل إلى الأعلى. إذا واجه walkdir
أو stat
خطأ IOError
، فسيعيد رمي الخطأ بشكل افتراضي. يمكن توفير دالة معالجة أخطاء مخصصة من خلال وسيط الكلمة الرئيسية onerror
. يتم استدعاء onerror
مع IOError
كوسيط.
انظر أيضًا: readdir
.
أمثلة
for (root, dirs, files) in walkdir(".")
println("Directories in $root")
for dir in dirs
println(joinpath(root, dir)) # path to directories
end
println("Files in $root")
for file in files
println(joinpath(root, file)) # path to files
end
end
julia> mkpath("my/test/dir");
julia> itr = walkdir("my");
julia> (root, dirs, files) = first(itr)
("my", ["test"], String[])
julia> (root, dirs, files) = first(itr)
("my/test", ["dir"], String[])
julia> (root, dirs, files) = first(itr)
("my/test/dir", String[], String[])
Base.Filesystem.mkdir
— Functionmkdir(path::AbstractString; mode::Unsigned = 0o777)
قم بإنشاء دليل جديد باسم path
وأذونات mode
. القيمة الافتراضية لـ mode
هي 0o777
، المعدلة بواسطة قناع إنشاء الملفات الحالي. هذه الدالة لا تنشئ أكثر من دليل واحد. إذا كان الدليل موجودًا بالفعل، أو إذا كانت بعض الأدلة الوسيطة غير موجودة، فإن هذه الدالة ترمي خطأ. انظر mkpath
لدالة تقوم بإنشاء جميع الأدلة الوسيطة المطلوبة. أعد path
.
أمثلة
julia> mkdir("testingdir")
"testingdir"
julia> cd("testingdir")
julia> pwd()
"/home/JuliaUser/testingdir"
Base.Filesystem.mkpath
— Functionmkpath(path::AbstractString; mode::Unsigned = 0o777)
قم بإنشاء جميع الدلائل الوسيطة في path
حسب الحاجة. يتم إنشاء الدلائل بالأذونات mode
التي تكون افتراضيًا 0o777
ويتم تعديلها بواسطة قناع إنشاء الملفات الحالي. على عكس mkdir
، لا يحدث خطأ إذا كان path
(أو أجزاء منه) موجودًا بالفعل. ومع ذلك، سيتم طرح خطأ إذا كان path
(أو أجزاء منه) يشير إلى ملف موجود. أعد path
.
إذا كان path
يتضمن اسم ملف، فمن المحتمل أنك ستحتاج إلى استخدام mkpath(dirname(path))
لتجنب إنشاء دليل باستخدام اسم الملف.
أمثلة
julia> cd(mktempdir())
julia> mkpath("my/test/dir") # ينشئ ثلاثة دلائل
"my/test/dir"
julia> readdir()
1-element Array{String,1}:
"my"
julia> cd("my")
julia> readdir()
1-element Array{String,1}:
"test"
julia> readdir("test")
1-element Array{String,1}:
"dir"
julia> mkpath("intermediate_dir/actually_a_directory.txt") # ينشئ دليلين
"intermediate_dir/actually_a_directory.txt"
julia> isdir("intermediate_dir/actually_a_directory.txt")
true
Base.Filesystem.hardlink
— Functionhardlink(src::AbstractString, dst::AbstractString)
ينشئ رابطًا صلبًا لملف المصدر الموجود src
بالاسم dst
. يجب ألا يوجد الوجهة، dst
.
انظر أيضًا: symlink
.
تمت إضافة هذه الطريقة في Julia 1.8.
Base.Filesystem.symlink
— Functionsymlink(target::AbstractString, link::AbstractString; dir_target = false)
ينشئ رابطًا رمزيًا إلى target
بالاسم link
.
على نظام Windows، يجب أن يتم التصريح عن الروابط الرمزية بشكل صريح على أنها تشير إلى دليل أو لا. إذا كان target
موجودًا بالفعل، فبشكل افتراضي سيتم اكتشاف نوع link
تلقائيًا، ومع ذلك إذا لم يكن target
موجودًا، فإن هذه الوظيفة بشكل افتراضي تنشئ رابط ملف ما لم يتم تعيين dir_target
إلى true
. لاحظ أنه إذا قام المستخدم بتعيين dir_target
ولكن target
موجود وهو ملف، فسيتم إنشاء رابط دليل، ولكن سيتم فشل فك ارتباط الرابط الرمزي، تمامًا كما لو أن المستخدم أنشأ رابط ملف (عن طريق استدعاء symlink()
مع تعيين dir_target
إلى false
قبل إنشاء الدليل) وحاول فك ارتباطه إلى دليل.
بالإضافة إلى ذلك، هناك طريقتان لإنشاء رابط على Windows؛ الروابط الرمزية ونقاط التقاطع. نقاط التقاطع أكثر كفاءة قليلاً، لكنها لا تدعم المسارات النسبية، لذا إذا تم طلب رابط دليل نسبي (كما هو موضح من خلال إرجاع isabspath(target)
إلى false
) سيتم استخدام رابط رمزي، وإلا سيتم استخدام نقطة تقاطع. أفضل ممارسة لإنشاء الروابط الرمزية على Windows هي إنشاؤها فقط بعد أن يتم إنشاء الملفات/الدلائل التي تشير إليها بالفعل.
انظر أيضًا: hardlink
.
هذه الوظيفة تثير خطأً تحت أنظمة التشغيل التي لا تدعم الروابط الرمزية الناعمة، مثل Windows XP.
تم إضافة وسيط الكلمة الرئيسية dir_target
في Julia 1.6. قبل ذلك، كانت الروابط الرمزية إلى المسارات غير الموجودة على Windows دائمًا روابط ملفات، ولم تكن الروابط النسبية إلى الدلائل مدعومة.
Base.Filesystem.readlink
— Functionreadlink(path::AbstractString) -> String
إرجاع موقع الهدف الذي يشير إليه الرابط الرمزي path
.
Base.Filesystem.chmod
— Functionchmod(path::AbstractString, mode::Integer; recursive::Bool=false)
قم بتغيير وضع الأذونات لـ path
إلى mode
. حاليًا، يتم دعم أوضاع الأعداد الصحيحة فقط (مثل 0o777
). إذا كان recursive=true
وكان المسار دليلاً، فسيتم تغيير جميع الأذونات في ذلك الدليل بشكل متكرر. أعد path
.
!!! ملاحظة قبل إصدار Julia 1.6، لم يكن هذا يقوم بالتلاعب بشكل صحيح في ACLs نظام الملفات على Windows، لذلك كان يقوم فقط بتعيين بتات القراءة فقط على الملفات. الآن يمكنه التلاعب بـ ACLs.
Base.Filesystem.chown
— Functionchown(path::AbstractString, owner::Integer, group::Integer=-1)
قم بتغيير مالك و/أو مجموعة path
إلى owner
و/أو group
. إذا كانت القيمة المدخلة لـ owner
أو group
هي -1
فلن يتغير المعرف المقابل. حاليًا، يتم دعم المالكين والمجموعات من نوع صحيح فقط. أعد path
.
Base.Libc.RawFD
— TypeRawFD
نوع بدائي يلتف حول موصِف ملف نظام التشغيل الأصلي. يمكن تمرير RawFD
s إلى طرق مثل stat
لاكتشاف معلومات حول الملف الأساسي، ويمكن أيضًا استخدامها لفتح تدفقات، مع وصف RawFD
لملف نظام التشغيل الذي يدعم التدفق.
Base.stat
— Functionstat(file)
إرجاع هيكل يحتوي على معلومات حول الملف. حقول الهيكل هي:
الاسم | النوع | الوصف |
---|---|---|
desc | Union{String, Base.OS_HANDLE} | المسار أو موصل ملف نظام التشغيل |
size | Int64 | الحجم (بالبايت) للملف |
device | UInt | معرف الجهاز الذي يحتوي على الملف |
inode | UInt | رقم inode للملف |
mode | UInt | وضع الحماية للملف |
nlink | Int | عدد الروابط الصلبة إلى الملف |
uid | UInt | معرف المستخدم لمالك الملف |
gid | UInt | معرف المجموعة لمالك الملف |
rdev | UInt | إذا كان هذا الملف يشير إلى جهاز، معرف الجهاز الذي يشير إليه |
blksize | Int64 | الحجم المفضل لكتلة نظام الملفات للملف |
blocks | Int64 | عدد الكتل المخصصة بحجم 512 بايت |
mtime | Float64 | الطابع الزمني لنظام Unix عندما تم تعديل الملف آخر مرة |
ctime | Float64 | الطابع الزمني لنظام Unix عندما تم تغيير بيانات الملف |
Base.Filesystem.diskstat
— Functiondiskstat(path=pwd())
يعيد إحصائيات بالبايت عن القرص الذي يحتوي على الملف أو الدليل المشار إليه بواسطة path
. إذا لم يتم تمرير أي وسيط، يتم إرجاع إحصائيات عن القرص الذي يحتوي على الدليل الحالي.
تم إضافة هذه الطريقة في Julia 1.8.
Base.Filesystem.lstat
— Functionlstat(file)
مثل stat
، ولكن بالنسبة للروابط الرمزية، يحصل على المعلومات للرابط نفسه بدلاً من الملف الذي يشير إليه. يجب استدعاء هذه الدالة على مسار ملف بدلاً من كائن ملف أو موصِّل ملف.
Base.Filesystem.ctime
— Functionctime(file)
يعادل stat(file).ctime
.
Base.Filesystem.mtime
— Functionmtime(file)
يعادل stat(file).mtime
.
Base.Filesystem.filemode
— Functionfilemode(file)
يعادل stat(file).mode
.
Base.filesize
— Functionfilesize(path...)
يعادل stat(file).size
.
Base.Filesystem.uperm
— Functionuperm(file)
احصل على أذونات مالك الملف كحقل بت
القيمة | الوصف |
---|---|
01 | إذن التنفيذ |
02 | إذن الكتابة |
04 | إذن القراءة |
للاطلاع على الحجج المسموح بها، انظر stat
.
Base.Filesystem.gperm
— Functiongperm(file)
مثل uperm
ولكن يحصل على أذونات المجموعة المالكة للملف.
Base.Filesystem.operm
— Functionoperm(file)
مثل uperm
ولكن يحصل على الأذونات للأشخاص الذين لا يمتلكون الملف ولا هم أعضاء في المجموعة المالكة للملف
Base.Filesystem.cp
— Functioncp(src::AbstractString, dst::AbstractString; force::Bool=false, follow_symlinks::Bool=false)
انسخ الملف أو الرابط أو الدليل من src
إلى dst
. force=true
سيقوم أولاً بإزالة dst
الموجود.
إذا كان follow_symlinks=false
، وsrc
هو رابط رمزي، سيتم إنشاء dst
كرابط رمزي. إذا كان follow_symlinks=true
وsrc
هو رابط رمزي، سيكون dst
نسخة من الملف أو الدليل الذي يشير إليه src
. ارجع بـ dst
.
وظيفة cp
تختلف عن أمر cp
. وظيفة cp
تعمل دائمًا على افتراض أن dst
هو ملف، بينما الأمر يقوم بأشياء مختلفة اعتمادًا على ما إذا كان dst
دليلًا أو ملفًا. استخدام force=true
عندما يكون dst
دليلًا سيؤدي إلى فقدان جميع المحتويات الموجودة في دليل dst
، وسيصبح dst
ملفًا يحتوي على محتويات src
بدلاً من ذلك.
Base.download
— Functiondownload(url::AbstractString, [path::AbstractString = tempname()]) -> path
قم بتنزيل ملف من عنوان url المعطى، وحفظه في الموقع path
، أو إذا لم يتم تحديده، في مسار مؤقت. يُرجع مسار الملف الذي تم تنزيله.
!!! ملاحظة منذ إصدار Julia 1.6، تم إهمال هذه الوظيفة وهي مجرد غلاف رقيق حول Downloads.download
. في الشيفرات الجديدة، يجب عليك استخدام تلك الوظيفة مباشرة بدلاً من استدعاء هذه.
Base.Filesystem.mv
— Functionmv(src::AbstractString, dst::AbstractString; force::Bool=false)
نقل الملف أو الرابط أو الدليل من src
إلى dst
. force=true
سيقوم أولاً بإزالة dst
الموجود. إرجاع dst
.
أمثلة
julia> write("hello.txt", "world");
julia> mv("hello.txt", "goodbye.txt")
"goodbye.txt"
julia> "hello.txt" in readdir()
false
julia> readline("goodbye.txt")
"world"
julia> write("hello.txt", "world2");
julia> mv("hello.txt", "goodbye.txt")
ERROR: ArgumentError: 'goodbye.txt' exists. `force=true` is required to remove 'goodbye.txt' before moving.
Stacktrace:
[1] #checkfor_mv_cp_cptree#10(::Bool, ::Function, ::String, ::String, ::String) at ./file.jl:293
[...]
julia> mv("hello.txt", "goodbye.txt", force=true)
"goodbye.txt"
julia> rm("goodbye.txt");
Base.Filesystem.rm
— Functionrm(path::AbstractString; force::Bool=false, recursive::Bool=false)
احذف الملف أو الرابط أو الدليل الفارغ في المسار المعطى. إذا تم تمرير force=true
، فإن المسار غير الموجود لا يُعتبر خطأ. إذا تم تمرير recursive=true
وكان المسار دليلاً، فسيتم إزالة جميع المحتويات بشكل متكرر.
أمثلة
julia> mkpath("my/test/dir");
julia> rm("my", recursive=true)
julia> rm("this_file_does_not_exist", force=true)
julia> rm("this_file_does_not_exist")
ERROR: IOError: unlink("this_file_does_not_exist"): no such file or directory (ENOENT)
Stacktrace:
[...]
Base.Filesystem.touch
— FunctionBase.touch(::Pidfile.LockMonitor)
قم بتحديث mtime
على القفل، للإشارة إلى أنه لا يزال جديدًا.
انظر أيضًا إلى الكلمة الرئيسية refresh
في منشئ mkpidlock
.
touch(path::AbstractString)
touch(fd::File)
قم بتحديث طابع الوقت لآخر تعديل على ملف إلى الوقت الحالي.
إذا لم يكن الملف موجودًا، يتم إنشاء ملف جديد.
أعد path
.
أمثلة
julia> write("my_little_file", 2);
julia> mtime("my_little_file")
1.5273815391135583e9
julia> touch("my_little_file");
julia> mtime("my_little_file")
1.527381559163435e9
يمكننا أن نرى أن mtime
قد تم تعديله بواسطة touch
.
Base.Filesystem.tempname
— Functiontempname(parent=tempdir(); cleanup=true) -> String
توليد مسار ملف مؤقت. هذه الدالة تعيد فقط مسارًا؛ لا يتم إنشاء أي ملف. من المحتمل أن يكون المسار فريدًا، ولكن لا يمكن ضمان ذلك بسبب الاحتمالية البعيدة جدًا لاستدعاء tempname
مرتين في وقت واحد مما يؤدي إلى توليد نفس اسم الملف. الاسم مضمون أن يختلف عن جميع الملفات الموجودة بالفعل في وقت استدعاء tempname
.
عند استدعائها بدون أي معطيات، سيكون الاسم المؤقت مسارًا مطلقًا إلى اسم مؤقت في دليل النظام المؤقت كما هو محدد بواسطة tempdir()
. إذا تم إعطاء معطى parent
، سيكون المسار المؤقت في ذلك الدليل بدلاً من ذلك.
خيار cleanup
يتحكم فيما إذا كانت العملية تحاول حذف المسار المعاد تلقائيًا عند انتهاء العملية. لاحظ أن دالة tempname
لا تنشئ أي ملف أو دليل في الموقع المعاد، لذا لا يوجد شيء لتنظيفه ما لم تقم بإنشاء ملف أو دليل هناك. إذا قمت بذلك وكان cleanup
هو true
، فسيتم حذفه عند إنهاء العملية.
تمت إضافة معطيات parent
و cleanup
في 1.4. قبل Julia 1.4، لم يكن المسار الذي تعيده tempname
سيتم تنظيفه عند إنهاء العملية.
يمكن أن يؤدي ذلك إلى ثغرات أمنية إذا حصلت عملية أخرى على نفس اسم الملف وأنشأت الملف قبل أن تتمكن من ذلك. افتح الملف باستخدام JL_O_EXCL
إذا كانت هذه مسألة تثير قلقك. يُوصى أيضًا باستخدام mktemp()
بدلاً من ذلك.
Base.Filesystem.tempdir
— Functiontempdir()
يحصل على مسار الدليل المؤقت. على نظام ويندوز، يستخدم tempdir()
أول متغير بيئي موجود في القائمة المرتبة TMP
، TEMP
، USERPROFILE
. على جميع أنظمة التشغيل الأخرى، يستخدم tempdir()
أول متغير بيئي موجود في القائمة المرتبة TMPDIR
، TMP
، TEMP
، و TEMPDIR
. إذا لم يتم العثور على أي من هذه، يتم استخدام المسار "/tmp"
.
Base.Filesystem.mktemp
— Methodmktemp(parent=tempdir(); cleanup=true) -> (path, io)
إرجاع (path, io)
، حيث path
هو مسار ملف مؤقت جديد في parent
و io
هو كائن ملف مفتوح لهذا المسار. يتحكم خيار cleanup
في ما إذا كان سيتم حذف الملف المؤقت تلقائيًا عند خروج العملية.
تم إضافة وسيط الكلمة الرئيسية cleanup
في Julia 1.3. وبالمثل، بدءًا من 1.3، ستقوم Julia بإزالة المسارات المؤقتة التي تم إنشاؤها بواسطة mktemp
عند خروج عملية Julia، ما لم يتم تعيين cleanup
صراحةً إلى false
.
Base.Filesystem.mktemp
— Methodmktemp(f::Function, parent=tempdir())
قم بتطبيق الدالة f
على نتيجة mktemp(parent)
واحذف الملف المؤقت عند الانتهاء.
انظر أيضًا: mktempdir
.
Base.Filesystem.mktempdir
— Methodmktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path
قم بإنشاء دليل مؤقت في دليل parent
مع اسم مُركب من prefix
المعطى ولاحقة عشوائية، وأعد مساره. بالإضافة إلى ذلك، في بعض الأنظمة، قد يتم استبدال أي أحرف 'X'
متبقية في prefix
بأحرف عشوائية. إذا كان parent
غير موجود، قم بإلقاء خطأ. يتحكم خيار cleanup
في ما إذا كان سيتم حذف الدليل المؤقت تلقائيًا عند خروج العملية.
تم إضافة وسيط prefix
في Julia 1.2.
تم إضافة وسيط cleanup
في Julia 1.3. ذات صلة، بدءًا من 1.3، ستقوم Julia بإزالة المسارات المؤقتة التي تم إنشاؤها بواسطة mktempdir
عند خروج عملية Julia، ما لم يتم تعيين cleanup
صراحةً إلى false
.
Base.Filesystem.mktempdir
— Methodmktempdir(f::Function, parent=tempdir(); prefix="jl_")
قم بتطبيق الدالة f
على نتيجة mktempdir(parent; prefix)
واحذف الدليل المؤقت وجميع محتوياته عند الانتهاء.
تم إضافة وسيط الكلمة الرئيسية prefix
في Julia 1.2.
Base.Filesystem.isblockdev
— Functionisblockdev(path) -> Bool
ارجع true
إذا كان path
جهاز كتلة، و false
خلاف ذلك.
Base.Filesystem.ischardev
— Functionischardev(path) -> Bool
ارجع true
إذا كان path
جهاز حرفي، وfalse
خلاف ذلك.
Base.Filesystem.isdir
— Functionisdir(path) -> Bool
ارجع true
إذا كان path
دليلاً، و false
خلاف ذلك.
أمثلة
julia> isdir(homedir())
true
julia> isdir("not/a/directory")
false
Base.Filesystem.isfifo
— Functionisfifo(path) -> Bool
ارجع true
إذا كان path
هو FIFO، و false
خلاف ذلك.
Base.Filesystem.isfile
— Functionisfile(path) -> Bool
ارجع true
إذا كان path
ملفًا عاديًا، و false
خلاف ذلك.
أمثلة
julia> isfile(homedir())
false
julia> filename = "test_file.txt";
julia> write(filename, "Hello world!");
julia> isfile(filename)
true
julia> rm(filename);
julia> isfile(filename)
false
Base.Filesystem.islink
— Functionislink(path) -> Bool
ارجع true
إذا كان path
رابطًا رمزيًا، و false
خلاف ذلك.
Base.Filesystem.ismount
— Functionismount(path) -> Bool
ارجع true
إذا كان path
نقطة تحميل، و false
خلاف ذلك.
Base.Filesystem.ispath
— Functionispath(path) -> Bool
ارجع true
إذا كانت هناك كيان نظام ملفات صالح موجود في path
، وإلا ارجع false
. هذه هي التعميم لـ isfile
، isdir
إلخ.
Base.Filesystem.issetgid
— Functionissetgid(path) -> Bool
ارجع true
إذا كان path
يحتوي على علامة setgid مضبوطة، و false
خلاف ذلك.
Base.Filesystem.issetuid
— Functionissetuid(path) -> Bool
ارجع true
إذا كان path
يحتوي على علامة setuid مضبوطة، و false
خلاف ذلك.
Base.Filesystem.issocket
— Functionissocket(path) -> Bool
ارجع true
إذا كان path
هو مقبس، و false
خلاف ذلك.
Base.Filesystem.issticky
— Functionissticky(path) -> Bool
ارجع true
إذا كان path
يحتوي على بت لاصق مضبوط، و false
خلاف ذلك.
Base.Filesystem.homedir
— Functionhomedir() -> String
إرجاع دليل المنزل الحالي للمستخدم.
!!! ملاحظة homedir
يحدد دليل المنزل عبر libuv
's uv_os_homedir
. لمزيد من التفاصيل (على سبيل المثال حول كيفية تحديد دليل المنزل عبر متغيرات البيئة)، انظر إلى وثائق uv_os_homedir
.
انظر أيضًا Sys.username
.
Base.Filesystem.dirname
— Functiondirname(path::AbstractString) -> String
احصل على جزء الدليل من المسار. يتم احتساب الأحرف اللاحقة ('/' أو '\') في المسار كجزء من المسار.
أمثلة
julia> dirname("/home/myuser")
"/home"
julia> dirname("/home/myuser/")
"/home/myuser"
انظر أيضًا basename
.
Base.Filesystem.basename
— Functionbasename(path::AbstractString) -> String
احصل على اسم الملف من مسار.
!!! ملاحظة هذه الدالة تختلف قليلاً عن برنامج Unix basename
، حيث يتم تجاهل الشرطات اللاحقة، أي أن $ basename /foo/bar/
يعيد bar
، بينما basename
في جوليا يعيد سلسلة فارغة ""
.
أمثلة
julia> basename("/home/myuser/example.jl")
"example.jl"
julia> basename("/home/myuser/")
""
انظر أيضًا dirname
.
Base.Filesystem.isabspath
— Functionisabspath(path::AbstractString) -> Bool
حدد ما إذا كان المسار مطلقًا (يبدأ من الدليل الجذر).
أمثلة
julia> isabspath("/home")
true
julia> isabspath("home")
false
Base.Filesystem.isdirpath
— Functionisdirpath(path::AbstractString) -> Bool
حدد ما إذا كان المسار يشير إلى دليل (على سبيل المثال، ينتهي بفاصل مسار).
أمثلة
julia> isdirpath("/home")
false
julia> isdirpath("/home/")
true
Base.Filesystem.joinpath
— Functionjoinpath(parts::AbstractString...) -> String
joinpath(parts::Vector{AbstractString}) -> String
joinpath(parts::Tuple{AbstractString}) -> String
قم بدمج مكونات المسار في مسار كامل. إذا كان بعض المعاملات هو مسار مطلق أو (على نظام ويندوز) يحتوي على مواصفات محرك لا تتطابق مع المحرك المحسوب لدمج المسارات السابقة، فسيتم إسقاط المكونات السابقة.
ملاحظة على نظام ويندوز، نظرًا لوجود دليل حالي لكل محرك، فإن joinpath("c:", "foo")
يمثل مسارًا نسبيًا للدليل الحالي على المحرك "c:" لذا فإن هذا يساوي "c:foo"، وليس "c:\foo". علاوة على ذلك، يعامل joinpath
هذا كمسار غير مطلق ويتجاهل حالة حرف المحرك، وبالتالي joinpath("C:\A","c:b") = "C:\A\b"
.
أمثلة
julia> joinpath("/home/myuser", "example.jl")
"/home/myuser/example.jl"
julia> joinpath(["/home/myuser", "example.jl"])
"/home/myuser/example.jl"
Base.Filesystem.abspath
— Functionabspath(path::AbstractString) -> String
قم بتحويل مسار إلى مسار مطلق عن طريق إضافة الدليل الحالي إذا لزم الأمر. كما يقوم بتطبيع المسار كما في normpath
.
أمثلة
إذا كنت في دليل يسمى JuliaExample
والبيانات التي تستخدمها تقع على بعد مستويين أعلى بالنسبة لدليل JuliaExample
، يمكنك كتابة:
abspath("../../data")
والذي يعطي مسار مثل "/home/JuliaUser/data/"
.
انظر أيضًا joinpath
، pwd
، expanduser
.
abspath(path::AbstractString, paths::AbstractString...) -> String
قم بتحويل مجموعة من المسارات إلى مسار مطلق عن طريق دمجها معًا وإضافة الدليل الحالي إذا لزم الأمر. يعادل abspath(joinpath(path, paths...))
.
Base.Filesystem.normpath
— Functionnormpath(path::AbstractString) -> String
قم بتطبيع مسار، مع إزالة إدخالات "." و ".." وتغيير "/" إلى فاصل المسار القياسي للنظام.
أمثلة
julia> normpath("/home/myuser/../example.jl")
"/home/example.jl"
julia> normpath("Documents/Julia") == joinpath("Documents", "Julia")
true
normpath(path::AbstractString, paths::AbstractString...) -> String
قم بتحويل مجموعة من المسارات إلى مسار موحد عن طريق دمجها معًا وإزالة إدخالات "." و "..". يعادل normpath(joinpath(path, paths...))
.
Base.Filesystem.realpath
— Functionrealpath(path::AbstractString) -> String
قم بتوحيد مسار عن طريق توسيع الروابط الرمزية وإزالة إدخالات "." و "..". في أنظمة الملفات التي لا تأخذ في الاعتبار حالة الأحرف ولكن تحتفظ بها (عادةً ما تكون على ماك وويندوز)، يتم إرجاع الحالة المخزنة في نظام الملفات للمسار.
(ترمي هذه الدالة استثناءً إذا لم يكن path
موجودًا في نظام الملفات.)
Base.Filesystem.relpath
— Functionrelpath(path::AbstractString, startpath::AbstractString = ".") -> String
إرجاع مسار ملف نسبي إلى path
إما من الدليل الحالي أو من دليل بدء اختياري. هذه عملية حساب مسار: لا يتم الوصول إلى نظام الملفات لتأكيد وجود أو طبيعة path
أو startpath
.
في نظام ويندوز، يتم تطبيق حساسية الحالة على كل جزء من المسار باستثناء أحرف محركات الأقراص. إذا كانت path
و startpath
تشير إلى محركات أقراص مختلفة، يتم إرجاع المسار المطلق لـ path
.
Base.Filesystem.expanduser
— Functionexpanduser(path::AbstractString) -> AbstractString
في أنظمة Unix، استبدل حرف التلدة في بداية المسار بدليل المستخدم الحالي.
انظر أيضًا: contractuser
.
Base.Filesystem.contractuser
— Functioncontractuser(path::AbstractString) -> AbstractString
في أنظمة Unix، إذا كان المسار يبدأ بـ homedir()
، استبدله برمز التلدة.
انظر أيضًا: expanduser
.
Base.Filesystem.samefile
— Functionsamefile(path_a::AbstractString, path_b::AbstractString)
تحقق مما إذا كانت المسارات path_a
و path_b
تشير إلى نفس الملف أو الدليل الموجود.
Base.Filesystem.splitdir
— Functionsplitdir(path::AbstractString) -> (AbstractString, AbstractString)
قسّم المسار إلى زوج من اسم الدليل واسم الملف.
أمثلة
julia> splitdir("/home/myuser")
("/home", "myuser")
Base.Filesystem.splitdrive
— Functionsplitdrive(path::AbstractString) -> (AbstractString, AbstractString)
على نظام ويندوز، يتم تقسيم المسار إلى جزء حرف محرك الأقراص وجزء المسار. على أنظمة يونكس، يكون المكون الأول دائمًا سلسلة فارغة.
Base.Filesystem.splitext
— Functionsplitext(path::AbstractString) -> (String, String)
إذا كان المكون الأخير من المسار يحتوي على نقطة أو أكثر، قم بتقسيم المسار إلى كل شيء قبل النقطة الأخيرة وكل شيء بما في ذلك وبعد النقطة. خلاف ذلك، أعد زوجًا من الوسيطة غير المعدلة والسلسلة الفارغة. "splitext" هو اختصار لـ "split extension".
أمثلة
julia> splitext("/home/myuser/example.jl")
("/home/myuser/example", ".jl")
julia> splitext("/home/myuser/example.tar.gz")
("/home/myuser/example.tar", ".gz")
julia> splitext("/home/my.user/example")
("/home/my.user/example", "")
Base.Filesystem.splitpath
— Functionsplitpath(path::AbstractString) -> Vector{String}
قم بتقسيم مسار الملف إلى جميع مكوناته. هذا هو عكس joinpath
. يُرجع مصفوفة من السلاسل الفرعية، واحدة لكل دليل أو ملف في المسار، بما في ذلك الدليل الجذر إذا كان موجودًا.
تتطلب هذه الوظيفة على الأقل Julia 1.1.
أمثلة
julia> splitpath("/home/myuser/example.jl")
4-element Vector{String}:
"/"
"home"
"myuser"
"example.jl"