دلایل عدم امکان ساخت پوشهای به نام CON در ویندوز چیست؟

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



