উইন্ডো 256 টি অক্ষরের পাথের নাম সীমাবদ্ধতা


17

দীর্ঘ গবেষণার পরে, অবশেষে আমি জানতে পেরেছি যে সর্বশেষতম মাইক্রোসফ্ট উইন্ডোজ 7. এ এমনকি পাঠের নামগুলি 256 টির চেয়ে বেশি অক্ষরের বেশি হতে পারে না cannot কেন এনটিএফএস ~ 32,000 অক্ষর পাথ পরিচালনা করতে পারে? এক ডজনেরও বেশি বছর ধরে কোনও সমস্যা ছাড়াই দৈর্ঘ্য! এটি পরিবর্তন করার কোনও সম্ভাবনা নেই? নাকি তা এড়ানোর কোনও ব্যবহারিক সমাধান রয়েছে?

দীর্ঘ ফাইলের নাম সহ কিছু নেস্টেড ফটো ডিরেক্টরিগুলির মতো সাধারণ ব্যবহারের ক্ষেত্রে 260 টি অক্ষর খুব কম।


1
আমি মনে করি উদ্বেগটি হ'ল যে পুরানো প্রোগ্রামগুলি রয়েছে যেগুলি কত দীর্ঘ হওয়া উচিত তার হার্ডকোডযুক্ত ধারণা রয়েছে, যাতে আপনি যদি দীর্ঘ পথগুলিতে তাদের ব্যবহার করার চেষ্টা করেন তবে তারা আকর্ষণীয় উপায়ে বিস্ফোরিত হবে।
dsolimano

লিনাক্স ওএসের কি এই সমস্যা আছে?
Ahorn

উত্তর:


18

মাইক্রোসফ্ট অনুসারে:

  • Traditionalতিহ্যবাহী উইন্ডোজ এপিআই সর্বশেষতম সংস্করণের জন্য বিকাশযুক্ত অ্যাপ্লিকেশনের জন্যও পাথের নামগুলিকে ২ 26০ টি অক্ষরে সীমাবদ্ধ করে।

  • ইউনিকোড-সচেতন এপিআই ব্যবহার করে অ্যাপ্লিকেশনগুলি এমন এক ধরণের পথ ব্যবহার করতে পারে যা 32767 অক্ষর পর্যন্ত অনুমতি দেয়। ফাইলের নামটি উপরিবর্তিত করতে হবে \\?\এবং এটি অবশ্যই একটি চূড়ান্ত পথ হতে পারে, যেমন, \\?\c:\dir\fileবা \\?\UNC\server\share\file। আরও সীমাবদ্ধতা আছে, বিশদ জন্য রেফারেন্স দেখুন।

যদি আপনি একটি গভীর ফাইল স্তরক্রম তৈরি এবং ব্যবহার করতে পরিচালিত হন এবং ফাইল নাম দৈর্ঘ্যের কারণে বোমা ফাটিয়ে এমন একটি অ্যাপ্লিকেশন নিয়ে কাজ করার প্রয়োজন হয় তবে কয়েকটি জিনিস আপনি চেষ্টা করতে পারেন:

  • প্রতীকী লিঙ্কগুলিmklink তৈরি করতে কমান্ডটি ব্যবহার করুন এবং আপনার অ্যাপ্লিকেশনটিতে সেগুলি ব্যবহার করে এমন একটি পথ পাস করুন।

  • substডিরেক্টরিতে একটি ড্রাইভ চিঠি বরাদ্দ করতে কমান্ডটি ব্যবহার করুন ।

  • একটি গভীর ডিরেক্টরি থেকে আপনার অ্যাপ্লিকেশন শুরু করুন এবং এটি সংক্ষিপ্ত আপেক্ষিক পাথ পাস করুন।

  • micros~1উইন্ডোজ in-এ এখনও বিদ্যমান রয়েছে বলে ধরে নিয়ে কিছু দীর্ঘ নাম তাদের 8.3 এলিয়াস ( ) দ্বারা প্রতিস্থাপন করুন , যদি আপনার micros~1পাশাপাশি থাকে তবে micros~2আমি কোনটি কী তা জানাতে জানি না; সম্ভবত ডস চালান command.com(আবার ধরে নিলে উইন্ডোজ 7 এখনও এটি করতে পারে)।


3
ঠিক আছে, উইন 7 থেকে উইন্ডোজ এক্সপ্লোরারও মনে হয় traditionalতিহ্যবাহী এপিআই! এটা সুন্দর.

3
আরও বেশি ব্যাকস্ল্যাশ `\\? \` :-)
রিং Ø

@ গিলস, মাইক্রোস ~ 1 এবং মাইক্রোস 2 2 কি সিস্টেম জুড়ে মানকৃত বা এলোমেলো?
পেসিয়ার 4

@ পেসারিয়ার যেকোনো ডিরেক্টরি তৈরি করা হয়েছিল প্রথমে পায় micros~1তাই এটি মূলত এলোমেলো।
গিলস'স'-দুষ্ট হওয়া বন্ধ করুন '

0

আপনি আপনার সমস্ত ফোল্ডার এবং ফাইলগুলির জন্য সংক্ষিপ্ত (8.3) নামগুলি ব্যবহার করতে পারেন।

আপনার অবশ্যই তা নিশ্চিত করা দরকার যে তারা সক্ষম হয়েছে কিনা।

একটি দীর্ঘ ফাইল নাম এমন কোনও ফাইলের নাম হিসাবে বিবেচিত যা সংক্ষিপ্ত এমএস-ডস (8.3 নামেও পরিচিত) শৈলীর নামকরণ কনভেনশন অতিক্রম করে। সাধারণত, উইন্ডোজ ডিস্কে দীর্ঘ ফাইলের নাম বিশেষ ডিরেক্টরি এন্ট্রি হিসাবে সংরক্ষণ করে, যা নির্দিষ্ট ফাইল সিস্টেমের উপর নির্ভর করে পারফরম্যান্স কারণে সিস্টেমভয়ে অক্ষম করা যায় । যখন আপনি একটি দীর্ঘ ফাইলের নাম তৈরি করেন, উইন্ডোজ নামের একটি সংক্ষিপ্ত 8.3 ফর্মও তৈরি করতে পারে, যার নাম 8.3 ওরফে, এবং এটি ডিস্কেও সঞ্চয় করে। এই 8.3 এলিয়াসিং নির্দিষ্ট ভলিউমের জন্য অক্ষম করা যেতে পারে।

(আমার সাহসী)

দীর্ঘ নাম থেকে সংক্ষিপ্ত নামটি পেতে আপনাকে কিছু কোডও লিখতে হবে।

সূত্র


2
হ্যাঁ ... উইন্ডোজ 95 এ এই দিনগুলি আমি খুব ভালভাবে স্মরণ করতে পারি যখন আমরা সবাই 256 চর দীর্ঘ ফাইলের নাম সহ এই সুপার ডুপার FAT32 পেয়েছি! যে ছিল চমত্কার (এই দিন) এবং আমি সত্যিই মর্মাহত করছি যে ফাইল নাম সীমাবদ্ধতা এখনও একটি বিষয় হতে পারে এই দিন। 2010! উইন্ডোজটি সত্যই

0

দৈর্ঘ্য বাইট হিসাবে সঞ্চিত হওয়ায় এনটিএফএস-এ ফাইল / ডিরেক্টরি নামটি 255 ইউনিকোড কোডপয়েন্টে সীমাবদ্ধ। তবে মোট পথের দৈর্ঘ্যের কোনও সহজাত সীমা নেই।

অনেক উইন 32 এপিআই কল (এক্সপ্লোরার শেল সহ) কলগুলিতে 260 - 1 দৈর্ঘ্যের সীমা থাকে। অন্য কিছু কলগুলিতে 32 কে পর্যন্ত পেতে \\? \ উপসর্গটি ব্যবহার করার ক্ষমতা রয়েছে (কিছুটা কম, যেহেতু ভলিউমের নাম কার্নেল-জমিতে প্রতিস্থাপিত হয়)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.