এনটিএফএস (উইন্ডোজ এক্সপি এবং উইন্ডোজ ভিস্তা) সর্বাধিক ফাইলের দৈর্ঘ্য?


260

আমি একটি ডেটাবেস টেবিল ডিজাইন করছি যা আপলোডকৃত ফাইলগুলির ফাইলের নাম ধারণ করবে। উইন্ডোজ এক্সপি বা ভিস্তার দ্বারা ব্যবহৃত এনটিএফএস-এ ফাইলের সর্বোচ্চ দৈর্ঘ্য কত?


83
একটি সাধারণ প্রশ্ন হওয়া উচিত তার পক্ষে আমি এতগুলি বিভিন্ন উত্তর কখনও দেখিনি। 199, 255, 256, 257, 260, 'প্রায় 30 000', 'প্রায় 32 000', এবং 'এটি নির্ভর করে' অবশ্যই, বাছাইপর্ব রয়েছে, কিন্তু তারা কি সব ঠিক হতে পারে না?
নিঃশর্তভাবেইইনস্টেটমোনিকা

7
এর 255, আমি এটি জানি কারণ কর্পোরেট ব্যবহারকারীদের এটি পৌঁছাতে বাধা দেওয়ার জন্য আমাকে একটি অ্যাপ্লিকেশন তৈরি করতে হয়েছিল, কারণ এটি আমাদের স্টোরেজ সার্ভারগুলিতে সমস্যা সৃষ্টি করে।
রবার্ট পিট

2
@RobertPitt। আপনি সেখানে কিছু মিস করছেন। এমএসডিএন থেকে উদ্ধৃতি: "একটি পথের সর্বাধিক দৈর্ঘ্য হ'ল MAX_PATH, এটি 260 বর্ণ হিসাবে সংজ্ঞায়িত করা হয়েছে"
মাইকেল ওলেসন

7
@ Michael9000। আমি বিশ্বাস করি যে রবার্টপিট পথের সীমাটি নয়, ফাইল নাম সীমাটি (যা এই প্রশ্নটি সম্পর্কে রয়েছে) উদ্ধৃত করছিল।
gdw2

7
এনটিএফএস মোটেও ম্যাক্সপ্যাথের মধ্যেই সীমাবদ্ধ নয়, উইন্ডোজ শেলটি কেবলমাত্র ম্যাক্সপ্যাথের মধ্যেই সীমাবদ্ধ নয়, এনটিএফএসের সর্বাধিক পথের দৈর্ঘ্য 32 কে
পলম

উত্তর:


286

কোনও ফাইলনামের পৃথক উপাদানগুলি (অর্থাত্ পথের প্রত্যেকটি উপ-ডিরেক্টরি এবং চূড়ান্ত ফাইলের নাম) 255 টি অক্ষরের মধ্যে সীমাবদ্ধ এবং মোট পাথের দৈর্ঘ্য প্রায় 32,000 অক্ষরের মধ্যে সীমাবদ্ধ।

যাইহোক, উইন্ডোজে, আপনি MAX_PATHমান (ফাইলের জন্য 259 টি অক্ষর, ফোল্ডারগুলির জন্য 248) অতিক্রম করতে পারবেন না । দেখাসম্পূর্ণ বিশদের জন্য http://msdn.microsoft.com/en-us/library/aa365247.aspx


4
এখানে আরো কিছু ঘটনা যে তার সমর্থক এই উত্তর (উইন্ডোজ স্বাভাবিকভাবে 260 অক্ষরের মধ্যে সীমিত আছে): msdn.microsoft.com/en-us/library/... এবং blogs.msdn.com/b/bclteam/archive/2007/02/13 /…
মাইকেল অলিসেন

62
এনটিএফএসের জন্য সংশোধন করুন, উইন্ডোজের জন্য সঠিক নয়, আপনার সরবরাহিত লিঙ্কটি অনুসারে: "উইন্ডোজ এপিআইতে (নিম্নলিখিত অনুচ্ছেদে কিছু ব্যতিক্রম নিয়ে আলোচনা করা হয়েছে), কোনও পথের সর্বাধিক দৈর্ঘ্য হ'ল MAX_PATH, এটি 260 বর্ণ হিসাবে সংজ্ঞায়িত করা হয়েছে"। মোট পাথ, সমস্ত ব্যবহারিক উদ্দেশ্যে, 259 অক্ষরে সীমিত জন্য (নাল-টারমিনেটর জন্য অনুমতি) করা হয়।
লরেন্স ডল

9
স্পষ্টতই যদি আপনি উইন্ডোজ এপিআই ফাইল পদ্ধতিগুলির "ইউনিকোড সংস্করণ" ব্যবহার করেন, আপনি "\\? \" দিয়ে পথের নামগুলি উপস্থাপন করা 32367 পর্যন্ত পেতে পারেন তা কি ঠিক?
রজারডপ্যাক

6
@ আরগারডপ্যাক: পুরো পথের জন্য, হ্যাঁ, তবে প্রতিটি পৃথক উপাদান (সাবফোল্ডার / চূড়ান্ত-ফাইল) 255 ইউএফএফ -16 কোড পয়েন্টের সীমাবদ্ধতা রাখে। এছাড়াও, সাধারণ সফ্টওয়্যার MAX_PATH আশা করে, তাই ... বুম করুন :)
স্নেমার্চ করুন

5
উইন্ডোজ 10 (সংস্করণ 1607 - বার্ষিকী আপডেট) এবং উইন্ডোজ সার্ভার 2016 এ আপনি একটি গ্রুপ নীতি এন্ট্রি ওভাররাইড করে কম্পিউটার কনফিগারেশন -> অ্যাডমিন টেম্পলেটগুলি -> সিস্টেম -> ফাইলসিস্টেমের অধীনে এনটিএফএস দীর্ঘ পথ সক্ষম করে ম্যাক্সপ্যাথ ইস্যুটিকে উপেক্ষা করার বিকল্প পেয়েছেন
স্টিভন মার্ক ফোর্ড

28

এটি 257 টি অক্ষর। সুনির্দিষ্টভাবে বলতে গেলে: এনটিএফএস নিজেই কয়েক হাজার অক্ষরের সর্বাধিক ফাইল-দৈর্ঘ্য (প্রায় 30'000 কিছু) চাপিয়ে দেয়। যাইহোক, উইন্ডোজ পথ + ফাইলের নামের জন্য একটি 260 সর্বোচ্চ দৈর্ঘ্য আরোপ করে। ড্রাইভ + ফোল্ডারে কমপক্ষে 3 টি অক্ষর লাগে, তাই আপনার 257 শেষ হয়।


21
ভুল - NUL টার্মিনেটর MAX_PATH এর অংশ, যা আপনাকে 256 অক্ষরের সর্বাধিক পাথ দেয় (যা আপনি পৃথক-উপাদান 255 এর সীমাবদ্ধতার কারণে তৈরি করতে পারবেন না)।
স্নেমার্চ

4
"255 এর স্বতন্ত্র-উপাদান সীমাবদ্ধতার কারণে যা আপনি তৈরি করতে পারবেন না" ভুল। আমরা এখানে সর্বোচ্চ পাথ দৈর্ঘ্যের কথা বলছি, সর্বোচ্চ পাথের দৈর্ঘ্যের দৈর্ঘ্য নয়। তদুপরি "ডিরেক্টরি তৈরি করার জন্য কোনও এপিআই ব্যবহার করার সময়, নির্দিষ্ট পাথটি এত দীর্ঘ হতে পারে না যে আপনি একটি 8.3 ফাইলের নাম সংযুক্ত করতে পারবেন না (অর্থাৎ ডিরেক্টরিটির নাম MAX_PATH বিয়োগ 12 ছাড়িয়ে যাবে না)।
লুডোভিচ কিউটি

এই বিতর্কটি কেবল তখনই ঘটেছিল কারণ নিম্ন-স্তরের এপিআই 256 চরটি একটি নাল হিসাবে এই ধারণার ভিত্তিতে ফাইলের নাম 256 অক্ষর তৈরি করতে দেয়, তবে ফাইলটি স্থানীয় অ্যাপ্লিকেশনগুলিতে অ্যাক্সেসযোগ্য (লুকানো) হয়ে যায়, তাই সাধারণভাবে কার্যকর নয়।
কনরাড বি

1
@ লুডোভিচিকিটি: আসলে ওপি ফাইল নাম দৈর্ঘ্যের সীমাবদ্ধতার কথা বলছিল , পথের দৈর্ঘ্য নয় (হ্যাঁ, এমনকি মূল সংশোধনীতেও আমি পরীক্ষা করে দেখেছি)। এবং তিনি খুব সুনির্দিষ্টভাবে এনটিএফএসের সীমা উল্লেখ করছিলেন এবং ওএসের নির্দিষ্ট সীমাবদ্ধতা নয়, একটি নির্দিষ্ট সাবসিস্টেম বা এপিআই বা ফ্রেমওয়ার্ক।
0xC0000022L

@ 0xC0000022L হ্যাঁ সত্যিই। আমি এটিকে ওপি প্রশ্নে ভুল করে লিখেছি এবং ফাইলের নামের দৈর্ঘ্য এবং পথের দৈর্ঘ্যের বিষয়ে মন্তব্য করাগুলিতে ফোকাস করেছি।
লুডোভিচ কিউটি

27

একটি দীর্ঘ ফাইলের নাম সহ কোনও ফাইল সংরক্ষণের চেষ্টা করার সময় ফ্রেমওয়ার্ক 4.5 এ "হ্যান্ডহেলড ব্যতিক্রম" এটি বলে:

নির্দিষ্ট পথ, ফাইলের নাম বা উভয়ই খুব দীর্ঘ। সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ফাইলের নামটি অবশ্যই 260 টির চেয়ে কম বর্ণের হতে হবে এবং ডিরেক্টরিটির নামটি 248 টির চেয়ে কম বর্ণের হতে হবে ।

স্ক্রিনশট


16

উইন্ডোজ এক্সপি এনটিএফএসে 199, আমি সবেমাত্র যাচাই করেছি।

এটি তত্ত্ব নয়, কেবল আমার ল্যাপটপে চেষ্টা করে। প্রশমিতকরণ প্রভাব থাকতে পারে, তবে এটি শারীরিকভাবে এটি আরও বড় করতে দেয় না let

আমি কি অবাক করে কিছু অন্য সেটিংস এই সীমিত? নিজের জন্য চেষ্টা করুন।


1
এক্সপি এর আমার সংস্করণে এটি নিশ্চিত হয়েছে, কি বেদনাদায়ক
জুলিয়ান ইয়ং

আমি উইন্ডোজ এক্সপিতে ঠিক একই কাজটি জিগলসের জন্য করেছি। আমি 200 টি অক্ষরে একটি সীমা হিট করেছি। তারপরে আমি সবেমাত্র 255 বারের সাথে একটি ফাইল তৈরি করেছি w, সেটি মুছে ফেলেছি এবং উইন্ডোজ 7 x64 এ একই নামের একটি ফোল্ডার তৈরি করেছি। এখন প্রশ্নটি এখানে সীমাবদ্ধ ফ্যাক্টরটি কী: এনটিএফএস সংস্করণ, ওএস বা সাবসিস্টেম বা এক্সপিতে উইন 32 এপিআই?
0xC0000022L

200-অক্ষরের সীমাটি এক্সপ্লোরারে রয়েছে বলে মনে হচ্ছে। অন্যান্য প্রোগ্রাম দীর্ঘ ফাইলের নাম তৈরি করতে পারে। এটি সম্ভবত তার নিজের থেকে ব্যবহারকারীকে বাঁচানোর জন্য একটি ইচ্ছাকৃত সীমা। :-)
avl_swen

13

এমএসডিএন অনুসারে , এটি 260 টি অক্ষর। এতে অন্তর্ভুক্ত রয়েছে "<NUL>"- অদৃশ্য অবসান হওয়া নাল চরিত্র, তাই আসল দৈর্ঘ্য 259।

তবে নিবন্ধটি পড়ুন, এটি কিছুটা জটিল।


1
প্রকৃতপক্ষে, রেফারেন্সড এমএসডিএন নিবন্ধটি বলে যে পাথটি ২0০ টি অক্ষরে সীমাবদ্ধ তবে ফাইলনামের দৈর্ঘ্য ফাইল সিস্টেম নির্ভর (তবে সাধারণত 255 বাইট)। তবে পাথ সীমাটি 32767 বাইটে বাড়ানোর জন্য "ইউনিকোড সংস্করণ [[উইন্ডোজ এপিআই ফাংশনগুলির]]" ব্যবহার করা সম্ভব তবে উইন্ডোজ দ্বারা অভ্যন্তরীণভাবে \\?\ রান অ্যাসেসটি নির্দিষ্ট উপায়ে কিছু অনির্দিষ্ট দৈর্ঘ্যে প্রসারিত করে সেই সীমাটি হ্রাস করা হয় । এই প্রসারণের পরে পাথ অবশ্যই 32767 বাইটের নিচে থাকতে হবে।
মিক্কো রেন্টালাইনেন

13

এনটিএফএসের দৈর্ঘ্য 255 NameLengththe এনটিএফএসের $Filenameবৈশিষ্ট্যটিতে ক্ষেত্রটি কোনও অফসেট ছাড়াই একটি বাইট; এটি 0-255 এর পরিসর দেয়।

ফাইলের নামটি আলাদা আলাদা "নেমস্পেসে" থাকতে পারে। এখনও অবধি রয়েছে: পসিক্স, উইন 32, ডস এবং (উইন 32 ডস - যখন কোনও ফাইলের নাম স্থানীয়ভাবে ডস নাম হতে পারে)। (যেহেতু স্ট্রিংটির দৈর্ঘ্য রয়েছে তাই এতে \ 0 থাকতে পারে তবে এটি সমস্যার সমাধান করতে পারে এবং উপরের নেমস্পেসে নেই))

সুতরাং একটি ফাইল বা ডিরেক্টরি নাম 255 অক্ষর পর্যন্ত হতে পারে। যখন উইন্ডোজ অধীনে সম্পূর্ণ পাথ উল্লেখ, আপনার প্রয়োজন সঙ্গে পথ উপসর্গ \\ \ (অথবা ব্যবহার \\ \ ইউএনসি ইউএনসি পাথ জন্য \ সার্ভার \ ভাগ) একটি বর্ধিত দৈর্ঘ্যের এক হিসাবে এই পথ চিহ্নিত করতে (~ 32k অক্ষর) । যদি আপনার পথটি দীর্ঘ হয় তবে আপনাকে আপনার কার্যনির্বাহী ডিরেক্টরিটি সেট করতে হবে (প্রক্রিয়া-বিস্তৃত সেটিংয়ের কারণে উগ - পার্শ্ব প্রতিক্রিয়া)।




4

আমি এটি উপরের অনুমোদিত উত্তরে যুক্ত করছি।

পরিষ্কার হওয়ার জন্য, লোকেরা এটি 255-260 টি অক্ষর বলে বিশ্বাস করার কারণ এটিই উইন্ডোজ এক্সপ্লোরার সমর্থন করে। এটির চেয়ে বেশি সময় ফাইলের নেমে ফাইল কপির মতো কিছু করার ক্ষেত্রে এটি ত্রুটি ঘটবে। যাইহোক, একটি প্রোগ্রাম অনেক দীর্ঘ ফাইলের নামগুলি পড়তে এবং লিখতে পারে (এটি কীভাবে আপনি এক্সপ্লোরার প্রথম স্থানে অভিযোগ করে এমন দৈর্ঘ্যে পৌঁছে যান)। এই জাতীয় পরিস্থিতিতে মাইক্রোসফ্টের "প্রস্তাবিত ফিক্স" হ'ল মূল প্রোগ্রামটিতে ফাইলটি খোলার এবং এর নাম পরিবর্তন করা।


আমি একটি ফোল্ডার স্তরক্রমের নিচে অবশ্যই একটি ফাইল সংরক্ষণ করার চেষ্টা করেছি, ভিআইএম সহ কমান্ড লাইন থেকে 260+ অক্ষরের অবশ্যই বেশি ছিল কিন্তু ব্যর্থ হয়েছিল।
প্যানি

@ পাণি: সুতরাং ভিমের লেখকরা দীর্ঘ পথের নামগুলি প্রয়োগ করার ক্ষেত্রে যত্ন নেননি। এটি দোষারোপ করার জন্য উইন্ডোজ নয়, উইন 32 সাবসিস্টেমও নয় এবং এনটিএফএসের কাছে ওপিতে জিজ্ঞাসা করা ফাইলটির নাম দৈর্ঘ্যের সীমাবদ্ধতার সাথে এর কোনও সম্পর্ক নেই ।
0xC0000022L

3

নতুন উইন্ডোজ এসডিকে ডকুমেন্টেশন (8.0) অনুযায়ী মনে হচ্ছে একটি নতুন পথ সীমা সরবরাহ করা হয়েছে। পাথ হ্যান্ডলিং ফাংশনগুলির একটি নতুন সেট রয়েছে এবং নীচের মতো PATHCCH_MAX_CCH এর একটি সংজ্ঞা রয়েছে:

// max # of characters we support using the "\\?\" syntax
// (0x7FFF + 1 for NULL terminator)
#define PATHCCH_MAX_CCH             0x8000

3
তবে উইন্ডোজ 8 এক্সপ্লোরার (আমার ক্ষেত্রে উইন 8.1 পূর্বরূপ) এই সীমাটি নিয়ে কাজ করছে না এবং এটি 259 টি অক্ষরের চেয়ে দীর্ঘ পথ গ্রহণ করবে না।
ক্লাসমিনাস_আইস_ আগস্ট

3

অফিসিয়াল ডকুমেন্টেশনের এই অংশটি পরিষ্কারভাবে জানিয়েছে যে এটি এনটিএফএস, এক্সফ্যাট এবং এফএটি 32 এর জন্য 255 ইউনিকোড অক্ষর , এবং ইউডিএফের 127 ইউনিকোড বা 254 এএসসিআইআই অক্ষর।

তা ছাড়া, প্রতিটি পাথের উপাদানটি 255 টির বেশি অক্ষরের সাথে সর্বাধিক পাথ নামের দৈর্ঘ্য সর্বদা 32,760 ইউনিকোড অক্ষর is


খুব কাছাকাছি. আমি গৃহীত উত্তরের একটি মন্তব্যে ইঙ্গিত করার সাথে সাথে এটি 32767 টি WCHARউপাদান। না, এটা না "ইউনিকোড অক্ষর" (!: কোড পয়েন্ট, অক্ষর ইত্যাদি ... আপনার ইউনিকোড পরিভাষা পরীক্ষা)।
0xC0000022L

2

255 অক্ষর, যদিও সম্পূর্ণ পাথটি তার চেয়ে দীর্ঘ হওয়া উচিত নয়। উইকিপিডিয়ায় এটি সম্পর্কে একটি দুর্দান্ত টেবিল রয়েছে: http://en.wikedia.org/wiki/Filename


-2

238! আমি নিম্নলিখিত ব্যাট স্ক্রিপ্ট দিয়ে এটি Win7 32 বিটের অধীনে পরীক্ষা করেছি:

set "fname="
for /l %%i in (1, 1, 27) do @call :setname
@echo %fname%
for /l %%i in (1, 1, 100) do @call :check
goto :EOF
:setname
set "fname=%fname%_123456789"
goto :EOF
:check
set "fname=%fname:~0,-1%"
@echo xx>%fname%
if not exist %fname% goto :eof
dir /b
pause
goto :EOF

আমি এটি উইন্ডোজ 7 এর অধীনে এমন একটি প্রোগ্রাম দিয়ে পরীক্ষা করেছি যা দীর্ঘ পথ সঠিকভাবে পরিচালনা করে। প্রতিটি পৃথক পাথ বিভাগটি 255 টি অক্ষর নিতে পারে (আমি ব্যবহার করেছি w)। এখন কি?
0xC0000022L

-2

আসলে এটি 256, ফাইল সিস্টেমের কার্যকারিতা তুলনা, সীমাগুলি দেখুন

Http://fixunix.com / মাইক্রোসফ্ট- উইন্ডোজ / 30758-windows-xp-file-name-leight-limit.html এ একটি পোস্ট পুনরাবৃত্তি করতে

"ধরে নিই আমরা এনটিএফএসের কথা বলছি এবং ফ্যাট 32 নয়," পথ + ফাইলের 255 অক্ষর "এক্সপ্লোরারের একটি সীমাবদ্ধতা, ফাইল সিস্টেম নিজেই নয় N

এক্সপ্লোরার-এবং উইন্ডোজ এপিআই- আপনাকে পাথের জন্য ২0০ টি অক্ষর সীমাবদ্ধ করে, যার মধ্যে ড্রাইভ লেটার, কোলন, পৃথক পৃথক স্ল্যাশ এবং একটি সমাপ্ত নাল চরিত্র অন্তর্ভুক্ত রয়েছে। আপনি যদি একটি \\" দিয়ে শুরু করেন তবে উইন্ডোজের দীর্ঘ পথটি পড়া সম্ভব হবে "

আপনি যদি উপরের পোস্টগুলি পড়েন তবে আপনি দেখতে পাবেন যে এখানে একটি 5 তম জিনিস রয়েছে যা আপনি নিশ্চিত হতে পারেন: কমপক্ষে একজন বাধা কম্পিউটার ব্যবহারকারীকে সন্ধান করা!


4
না - এটি 255 the এনটিএফএসের নাম-দৈর্ঘ্য ক্ষেত্র $ ফাইলের নাম বৈশিষ্ট্যটি একটি বাইট যা অফসেট ছাড়াই রয়েছে; এটি 0-255
ডোমিনিক ওয়েবার

-2

আমি ডাব্লুএস 2012 এক্সপ্লোরারে 224 টির চেয়ে বেশি অক্ষরের বেশি + পিরিয়ড + এক্সনেসন নাম দিয়ে কোনও ফাইল তৈরি করতে পারি না । মেসেঞ্জারে গুলি করবেন না!

একই সার্ভারের সিএমডিতে আমি 235 টিরও বেশি অক্ষরের নাম তৈরি করতে পারি না :

সিস্টেম নির্দিষ্ট পথ খুঁজে পাচ্ছি না.

এক্সপ্লোরারটিতে তৈরি হওয়া 224 টি অক্ষরের নামযুক্ত ফাইলটি নোটপ্যাড ++ এ খোলা যাবে না - পরিবর্তে এটি নতুন ফাইল নিয়ে আসে।


The system cannot find the path specified.যেমন হয় না The specified path, file name, or both are too long.। আমার ধারণা আপনার টাইপ বা কিছু ছিল আপনি যদি অস্তিত্বহীন পথে এমন কোনও ফাইল তৈরি করার চেষ্টা করেন বা অস্তিত্বহীন কোনও দিকে যেতে চান তবে আপনি সেই বার্তাটি পাবেন।
ম্যাথিয়াস বার্গার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.