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


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.