لماذا "الملف موجود" طريقة في العديد من اللغات العودة الحقيقية عن الدليل ؟

StackOverflow https://stackoverflow.com/questions/50148

سؤال

وأنا أعلم أنه يفعل في بي, و أنا متأكد أن يفعل في جافا.أنا لم تستخدم أحدث الإصدارات .صافي لذا لن أتكلم بالنسبة لهم.يبدو محرجا جدا, ولكن كنت أتساءل إذا كان هناك سبب أساسي هذا.

هل كانت مفيدة؟

المحلول

سبب واحد هو التوافق - أي شخص قد فعلت 'التحقق من وجود' يعرف استبعاد الدلائل ؛ تغيير هذا السلوك قد تخلط بين أولئك الذين يعتمدون على هذا السلوك.

ثانيا: التعليمات البرمجية الأساسية في كثير من الأحيان لا شيك على نظام التشغيل من أجل الوجود في catlog من الملفات وإدخالات - إلى نظام التشغيل, دليل هو نفس الملف.وبعبارة أخرى, انها تبحث عن فرصة دخول " xyz "في كتالوج ليس ملف مع اسم" xyz " في الكتالوج.

إلى الوراء التوافق هو السبب الرئيسي أظن.

نصائح أخرى

وهناك أيضا سبب رسمي لماذا دليل هو الملف:

ملفات (أو الروابط إلى الملفات) يمكن أن يكون يقع في الدلائل.ومع ذلك ، عموما, دليل يمكن أن تحتوي على إما قائمة الملفات أو قائمة وصلات إلى الملفات.في هذا تعريف هو من أهمية قصوى أهمية أن مصطلح "ملف" وتشمل الدلائل.هذا يسمح وجود دليل الهرمية ، أي الدلائل التي تحتوي على الدلائل.

من ويكيبيديا ، 'الملف'

ومن الشائع استخدام "الملف موجود" وظيفة للتحقق من مسار قبل كتابة على ذلك.في هذه الحالة استخدام نوع الملف غير ذي صلة ، إذا كان هناك دليل يسمى "/home/foo" أنت لن تكون قادرة على إنشاء ملف يسمى "/home/foo"

أيضا PHP, واحدة من اللغات التي ذكرتها ، ويوفر العديد من الوظائف اعتمادا على ما نوع(ق) من الملف يهمك:

  • file_exists() سيعود ينطبق على الملفات والأدلة وصلات رمزية
  • is_file() سيعود صحيح عن الملفات لكن كاذبة عن الدلائل sym الروابط
  • is_dir() سيعود صحيح الدلائل ، ولكن كاذبة عن الملفات و الروابط sym
  • is_link() سيعود صحيح الارتباطات الرمزية ، ولكن كاذبة عن الملفات والدلائل

جزء من فلسفة يونكس هو أن "كل شيء هو الملف".هذا وقد أثرت البيئات الأخرى وكذلك إلى حد ما.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top