কোনও ফাইলের পুরো পথ থেকে ডিরেক্টরিটি কীভাবে পাব?


526

কোনও ফাইলের মধ্যে থাকা ডিরেক্টরিটি পাওয়ার সহজ উপায় কী? আমি একটি ওয়ার্কিং ডিরেক্টরি সেট করতে এটি ব্যবহার করছি।

string filename = @"C:\MyDirectory\MyFile.bat";

এই উদাহরণে, আমার "সি: \ মাই ডাইরেক্টরি" পাওয়া উচিত।


3
এটি স্ট্রিং আক্ষরিক হওয়া উচিত নয়? @"C:\MyDirectory\MyFile.bat"
— এডগার

3
কারও কি এই প্রশ্নটি সুরক্ষিত করতে চায় যার এর অধিকার রয়েছে? 2017 থেকে শেষের সাথে 11 টি একই উত্তর ..
— বোর্ন

উত্তর:


837

আপনি যদি অবশ্যই একটি নিখুঁত পথ পেয়ে থাকেন তবে ব্যবহার করুন Path.GetDirectoryName(path) ।

আপনি যদি কেবল কোনও আপেক্ষিক নাম পেতে পারেন তবে ব্যবহার করুন new FileInfo(path).Directory.FullName ।

নোট করুন Pathএবং FileInfoউভয়ই নেমস্পেসে পাওয়া যায় System.IO।


1
আসলে, তবে গেটডাইরেক্টরি নামে একটি পদ্ধতি আছে কি? এটি কি গেটডাইরেক্টরি নাম নয়?
— ব্র্যান্ডন

1
আপনি কেবল ডিরেক্টরির পরিবর্তে ডিরেক্টরি ডিরেক্টরি ব্যবহার করতে পারেন ull ফুলপথ আপনি পারবেন না?
— স্টিভেন রবিন্স

1
আমি আপেক্ষিক নাম পাওয়ার বিরুদ্ধে প্রমাণ দিচ্ছিলাম। আমি পথ চিহ্নিত ছিল না যে নিখুঁত হবে। আমি এখন উভয় সংস্করণ পেয়েছি :)
— জন স্কিটি

আপনি এটি পরীক্ষা করতে স্নিপি ব্যবহার করেন? ;)
— শাহকাল্পেশ

1
@ ইউলিসেস আলভেস: আমার বিশ্বাস new FileInfo(path).Directory.FullNameউভয় ক্ষেত্রেই কাজ করা উচিত।
— জন স্কিটি



12

আপনি ব্যবহার করতে পারেন System.IO.Path.GetDirectory(filename), বা পথটিকে একটিতে পরিণত করতে FileInfoএবং ব্যবহার করতে পারেন FileInfo.Directory।

আপনি যদি পথটি দিয়ে অন্য জিনিসগুলি করেন তবে এর FileInfoসুবিধাও থাকতে পারে।


1
পাথ শ্রেণিতে কোনও 'গেটডাইরেক্টরি পদ্ধতি নেই; আপনার অবশ্যই 'গেটডাইরেক্টরিনেম' বোঝাতে হবে
— বিল

12

ফোল্ডারের পথ পেতে নীচের বর্ণিত কোডটি ব্যবহার করুন

Path.GetDirectoryName(filename);

এটি আপনার ক্ষেত্রে "সি: \ মাই ডাইরেক্টরি" ফিরিয়ে দেবে



5

আপনি যদি কোনও FileInfoঅবজেক্টের সাথে কাজ করছেন stringতবে DirectoryNameসম্পত্তিটির মাধ্যমে ডিরেক্টরিটির সম্পূর্ণ পথের একটি উপস্থাপনা তোলার সহজ উপায় রয়েছে ।

FileInfo.DirectoryNameএমএসডিএন এর মাধ্যমে সম্পত্তির বিবরণ :

ডিরেক্টরিটির পুরো পথটি উপস্থাপন করে একটি স্ট্রিং পান।

নমুনা ব্যবহার:

string filename = @"C:\MyDirectory\MyFile.bat";
FileInfo fileInfo = new FileInfo(filename);
string directoryFullPath = fileInfo.DirectoryName; // contains "C:\MyDirectory"

এমএসডিএন ডকুমেন্টেশনের লিঙ্ক ।


5

আপনি বর্তমান অ্যাপ্লিকেশন পাথটি ব্যবহার করে পেতে পারেন:

string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();

শুভকামনা!


0

প্রথমে আপনাকে System.IO নেমস্পেস ব্যবহার করতে হবে। তারপর;

string filename = @"C:\MyDirectory\MyFile.bat";
string newPath = Path.GetFullPath(fileName);

অথবা

string newPath = Path.GetFullPath(openFileDialog1.FileName));

0

আপনি Path.GetFullPathবেশিরভাগ ক্ষেত্রে ব্যবহার করতে পারেন । তবে আপনি যদি ফাইলের নাম তুলনামূলকভাবে অবস্থিত ক্ষেত্রেও পথটি পেতে চান তবে নীচের জেনেরিক পদ্ধতিটি ব্যবহার করতে পারেন:

string GetPath(string filePath)
{
  return Path.GetDirectoryName(Path.GetFullPath(filePath))
}

উদাহরণ স্বরূপ:

GetPath("C:\Temp\Filename.txt") প্রত্যাবর্তন "C:\Temp\"

GetPath("Filename.txt")current working directoryমত ফিরে"C:\Temp\"


0

আমার ক্ষেত্রে, আমার একটি সম্পূর্ণ পাথের ডিরেক্টরি ডিরেক্টরি (ডিরেক্টরিটির) সন্ধানের দরকার ছিল তাই আমি কেবল এটি করেছি:

var dirName = path.Split('\\').Last();

1
ওপি দরকার "C:\MyDirectory"এবং দরকার নেই MyDirectory। স্ট্রিং ম্যানিপুলেশন পদ্ধতি ব্যবহারের পরামর্শ ঝুঁকিপূর্ণ, অনেকগুলি ফাঁদ রয়েছে, বরং উত্সর্গীকৃত Pathপদ্ধতিগুলি ব্যবহার করুন ।
— সিনাতর

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