راهنمای رفع خطای طولانی بودن مسیر فایلها (Filename too long) در ویندوز و گیت
نویسنده: وحید نصیری
تاریخ: ۱۴۰۵/۰۴/۱۹ ۰۹:۲۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
error: unable to create file some/very/deeply/nested/path/to/a/file.ts: Filename too long
MAX_PATH پیروی میکند که حداکثر طول مسیر یک فایل را به ۲۶۰ کاراکتر محدود میسازد. این ۲۶۰ کاراکتر شامل حرف درایو (مانند C:\)، پوشههای تودرتو، نام فایل و کاراکتر نال پایانی (Null-terminator) است.node_modules در جاوااسکریپت یا ساختار فضاهای نام و پوشههای عمیق در پروژههای بزرگ داتنت) به راحتی این سقف را رد میکنند، اما گیت در ویندوز به صورت پیشفرض سقف مسیرهای طولانی را رعایت میکند تا با سیستمعامل سازگار بماند. بنابراین وقتی طول مسیر کامل یک فایل از ۲۶۰ کاراکتر بیشتر شود، عملیات ایجاد فایل توسط گیت با شکست مواجه خواهد شد.core.longpaths)core.longpaths دارد که به آن اجازه میدهد محدودیت ۲۶۰ کاراکتری را دور بزند. بسته به میزان دسترسی خود در سیستم، میتوانید این ویژگی را به دو روش فعال کنید:git config --system core.longpaths true
git config --global core.longpaths true
نکته کلیدی: فعال کردن این گزینه در گیت، فقط به نرمافزار گیت اجازه میدهد که فایلهایی با مسیر طولانی ایجاد کند. با این حال، اگر ویندوز یا سایر ابزارهای توسعه (مانند برخی نسخههای قدیمیتر IDEها یا ابزارهای خط فرمان) با مسیرهای طولانی سازگار نباشند، ممکن است در خواندن یا پردازش این فایلها دچار مشکل شوند. بنابراین، گام بعدی برای یک حل ریشهای ضروری است.
Win + R را فشرده، عبارت gpedit.msc را تایپ کرده و اینتر بزنید.Computer Configuration > Administrative Templates > System > Filesystemreg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f
app.config یا manifest برنامه خود را بروزرسانی کنید تا داتنت فریمورک رفتارهای قدیمی خود را کنار بگذارد:<runtime> <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" /> </runtime>
Filename too long یک محدودیت قدیمی میراث سیستمعامل DOS در ویندوز است که امروزه به راحتی قابل برطرف شدن است. با ترکیب دو دستور ساده گیت و یک تغییر کوچک در پیکربندی ویندوز، میتوانید پایداری فرآیند CI/CD و محیط توسعه خود را تضمین کنید. به عنوان یک توسعهدهنده داتنت، هماهنگسازی زیرساخت سیستمعامل با نیازمندیهای ابزارهای مدرن، از گامهای کلیدی در مدیریت حرفهای چرخهی حیات نرمافزار است.