چرا ویندوز اجازه نمیدهد پوشهای به نام CON بسازید؟
محدودیت ساخت پوشه با نامهایی مانند CON در ویندوز باگی نرمافزاری نیست، بلکه میراثی از دوران داس برای حفظ سازگاری نام دستگاهها است.
محدودیت ساخت پوشه با نامهایی مانند CON در ویندوز باگی نرمافزاری نیست، بلکه میراثی از دوران داس برای حفظ سازگاری نام دستگاهها است.
اگر در ویندوز بخواهید پوشهای با نام CON بسازید، سیستمعامل اجازهی این کار را نمیدهد. دلیلش به فناوریهای جدید ویندوز یا حتی محدودیتهای خود فایلسیستم NTFS مربوط نیست؛ ریشهی ماجرا به دوران DOS و نامگذاری دستگاههای سختافزاری برمیگردد.
ویندوز تعدادی نام را بهعنوان «نامهای رزروشدهی دستگاه» در فضای Win32 میشناسد. CON یکی از آنها است و در اصل به دستگاه کنسول اشاره میکرد. نامهای دیگری مانند PRN و AUX و NUL و COM1 تا COM9 و LPT1 تا LPT9 نیز در همین گروه قرار دارند. به همین دلیل نمیتوانید آنها را بهصورت عادی برای فایل یا پوشه استفاده کنید.
مایکروسافت در مستندات رسمی توضیح میدهد که این رفتار به سازگاری با گذشته مربوط میشود. زمانی که برنامهها از طریق رابطهای قدیمی DOS با دستگاههایی مانند کنسول و پرینتر ارتباط برقرار میکردند، این نامها معنای خاصی داشتند. برای همین، توابع معمول Win32 هنگام ایجاد یا دسترسی به فایل، آنها را نام فایل عادی در نظر نمیگیرند.
NTFS خودش چنین محدودیتی ندارد. مایکروسافت صراحتاً میگوید نامهای رزروشده در واقع محدودیت فضای نام Win32 هستند، نه محدودیت فایلسیستم NTFS. حتی ابزارها و روشهایی وجود دارند که میتوانند به فایلهایی با نامهای رزروشده دسترسی پیدا کنند.
این موضوع فقط به CON هم محدود نمیشود. برای مثال NUL.txt نیز طبق مستندات مایکروسافت همچنان به نام دستگاه NUL مربوط میشود؛ بنابراین اضافهکردن پسوند لزوماً مشکل را حل نمیکند. همین قاعده برای برخی نامهای دیگر رزروشده هم صدق میکند.
بنابراین، وقتی ویندوز از ساخت پوشهای به نام CON جلوگیری میکند، با یک باگ عجیب روبهرو نیستید؛ بلکه بخشی از میراث چند دههای ویندوز است که برای حفظ سازگاری با نرمافزارها و مفاهیم قدیمی، هنوز در سیستمعامل مدرن باقی مانده است.