سؤال

لماذا لا يمكنني إنشاء مسارا عميقا شخصياته في المسار هو أكثر من 255 في نظام ملفات NTFS؟ يبدو حدود fat32، ولكن موجودة أيضا في NTFS؟ هل يمكن لأي شخص تقديم بعض المستندات؟

شكرا جزيلا!

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

المحلول

الحد 260 حرف ليس قيدا لنظام الملفات، ولكن من واجهة برمجة تطبيقات Win32. يحدد Win32 Max_Path ك 260 وهو ما يستخدمه API للتحقق من طول المسار الذي تم تمريره إلى وظائف مثل Filecreate، FileOpen، إلخ. (والتي تستخدمها .NET في BCL).

ومع ذلك، يمكنك تجاوز قواعد Win32 وإنشاء مسارات تصل إلى 32 ألف حرفا. أساسا تحتاج إلى استخدام بناء جملة "؟ C: myReallylongpath file.txt" التي ربما لم تشاهدها من قبل. أخيرا، قمت بفحص ملفات الملف وملف الملفات في .NET من استخدام هذا النوع من المسار، ولكن يمكنك بالتأكيد القيام بذلك من C / C ++. إليك رابط لمزيد من المعلومات.

http://msdn.microsoft.com/en-us/library/aa365247(vs.85).aspx.

نصائح أخرى

ونقلت من ويكيبيديا

تقتصر أسماء الملفات على 255 وحدة رمز UTF-16. يتم حجز بعض الأسماء في الدليل الجذر الحجم ولا يمكن استخدامها للملفات. هذه هي: MFT $ MFT، $ MFTMIRR، $ logfile، حجم $، attdef $،. (DOT)، $ النقطية، التمهيد $ BADCLUS، $ badclus، $ secure، upcase $ تمتد $؛ [3]. (DOT) وتمديد دولار كلا الدلؤين؛ الآخرون هم الملفات. يحد النواة NT المسارات الكاملة إلى 32،767 وحدة رمز UTF-16.

http://en.wikipedia.org/wiki/ntfs.

Doc.. وبعد يجب عليك بالتأكيد أن تكون قادرا على إنشاء FilePaths أطول من 255 بايت، طالما كان كل مكون من مسار الفرد قيد هذا. ومع ذلك، يجب أن تستخدم إصدارات Unicode (W) من مكالمات الوصول إلى الملفات للحصول على هذا السلوك؛ إذا كنت تستخدم واجهات ANSI (A) في البايت مثل تلك المستخدمة من قبل Stdio، فسوف تكون عالقة مع حدود واجهة المسار المسبق Unicode القديم.

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