উত্তর:
Path.GetFileNameWithoutExtension
পদ্ধতি ফাইলের নাম আপনি এক্সটেনশানটি ছাড়া একটি আর্গুমেন্ট হিসাবে পাস, যেমন নাম থেকে সুস্পষ্ট হওয়া উচিত দেয়।
এই উদ্দেশ্যে ফ্রেমওয়ার্কে একটি পদ্ধতি রয়েছে, এটি এক্সটেনশন বাদে পুরো পথ রাখবে।
System.IO.Path.ChangeExtension(path, null);
যদি কেবল ফাইলের নাম প্রয়োজন হয় তবে ব্যবহার করুন
System.IO.Path.GetFileNameWithoutExtension(path);
null
একটি যাদু মান আছে। আপনি যদি String.Empty
ওরফে ব্যবহার করেন তবে আপনাকে ""
পিছনের [ .
] বিন্দু দিয়ে রেখে দেওয়া হবে ।
GetFileNameWithoutExtension
আরও স্পষ্ট হয়। যদিও এটির সম্ভাব্য অনাকাঙ্খিত পার্শ্ব প্রতিক্রিয়া এবং এড়াতে বিকল্পের অস্তিত্ব সম্পর্কে জেনে এটি দুর্দান্ত।
তুমি ব্যবহার করতে পার
string extension = System.IO.Path.GetExtension(filename);
এবং তারপরে নিজেই এক্সটেনশনটি সরিয়ে ফেলুন:
string result = filename.Substring(0, filename.Length - extension.Length);
স্ট্রিং.লাস্ট ইন্ডেক্সএফ কাজ করবে।
string fileName= "abc.123.txt";
int fileExtPos = fileName.LastIndexOf(".");
if (fileExtPos >= 0 )
fileName= fileName.Substring(0, fileExtPos);
foo/bar.cat/cheese
!
String.LastIndexOf
এই জাতীয় কিছু অর্জনের জন্য বিপজ্জনক। উপরে কোনও এক্সটেনশনবিহীন ফাইলগুলির জন্য, যেমন @ ক্যামেরন উপরে বলেছে, আপনার ফলাফলগুলি আপনি চান তা নাও হতে পারে। এটি করার নিরাপদতম উপায়টি হল উপরের @ লগম্যানের উত্তরটি
আমি নীচে, কম কোড ব্যবহার করেছি
string fileName = "C:\file.docx";
MessageBox.Show(Path.Combine(Path.GetDirectoryName(fileName),Path.GetFileNameWithoutExtension(fileName)));
আউটপুট হবে
সি: \ ফাইল
Path.Combine()
উল্লেখ না করে ব্যবহার করুন "\\"
।
আমি জানি এটি একটি পুরানো প্রশ্ন এবং Path.GetFileNameWithoutExtension
এটি একটি ভাল এবং সম্ভবত ক্লিনার বিকল্প। তবে ব্যক্তিগতভাবে আমি আমার প্রকল্পে এই দুটি পদ্ধতি যুক্ত করেছি এবং সেগুলি ভাগ করতে চেয়েছিলাম। রেঞ্জ এবং সূচকগুলি ব্যবহার করার কারণে এটির জন্য সি # 8.0 প্রয়োজন।
public static string RemoveExtension(this string file) => ReplaceExtension(file, null);
public static string ReplaceExtension(this string file, string extension)
{
var split = file.Split('.');
if (string.IsNullOrEmpty(extension))
return string.Join(".", split[..^1]);
split[^1] = extension;
return string.Join(".", split);
}
/// <summary>
/// Get the extension from the given filename
/// </summary>
/// <param name="fileName">the given filename ie:abc.123.txt</param>
/// <returns>the extension ie:txt</returns>
public static string GetFileExtension(this string fileName)
{
string ext = string.Empty;
int fileExtPos = fileName.LastIndexOf(".", StringComparison.Ordinal);
if (fileExtPos >= 0)
ext = fileName.Substring(fileExtPos, fileName.Length - fileExtPos);
return ext;
}
private void btnfilebrowse_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
//dlg.ShowDialog();
dlg.Filter = "CSV files (*.csv)|*.csv|XML files (*.xml)|*.xml";
if (dlg.ShowDialog() == DialogResult.OK)
{
string fileName;
fileName = dlg.FileName;
string filecopy;
filecopy = dlg.FileName;
filecopy = Path.GetFileName(filecopy);
string strFilename;
strFilename = filecopy;
strFilename = strFilename.Substring(0, strFilename.LastIndexOf('.'));
//fileName = Path.GetFileName(fileName);
txtfilepath.Text = strFilename;
string filedest = System.IO.Path.GetFullPath(".\\Excels_Read\\'"+txtfilepath.Text+"'.csv");
// filedest = "C:\\Users\\adm\\Documents\\Visual Studio 2010\\Projects\\ConvertFile\\ConvertFile\\Excels_Read";
FileInfo file = new FileInfo(fileName);
file.CopyTo(filedest);
// File.Copy(fileName, filedest,true);
MessageBox.Show("Import Done!!!");
}
}
এই বাস্তবায়ন কাজ করা উচিত।
string file = "abc.txt";
string fileNoExtension = file.Replace(".txt", "");
abc.txt.pdf
? :-)