সি # ব্যবহার করে ফাইলের এক্সটেনশন পরিবর্তন করুন


99

আমার অনেকগুলি প্রকারের ফাইল রয়েছে: পিডিএফ, টিফ, জেপেইগ, বিএমপি। ইত্যাদি। আমার প্রশ্ন হল আমি কীভাবে ফাইলের এক্সটেনশন পরিবর্তন করতে পারি? আমি এটি চেষ্টা করেছি:

my file= c:/my documents/my images/cars/a.jpg;
string extension = Path.GetExtension(myffile);
myfile.replace(extension,".Jpeg");

এটি যে ধরণের ফাইল তা নয়, আমি যে ফর্ম্যাটটি নির্দিষ্ট করে তা অবশ্যই ফাইলের নামের সাথে থাকতে হবে। কিন্তু এটা কাজ করে না। আমি ব্রাউজারের মতো ফাইলের পাথ পাই c:\..\..\a.jpgএবং ফাইল ফর্ম্যাটটি a.jpeg। সুতরাং, যখন আমি এটি মুছে ফেলতে চেষ্টা করুন, এটা আমাকে একটি ত্রুটি দেয়: Cannot find the file on specified path'। সুতরাং, আমি ভাবছি এটির সাথে মেলে না এমন ফাইল এক্সটেনশনের সাথে কিছু করার আছে। তাই, আমি রূপান্তর করার চেষ্টা করছি .jpgকরার .jpegএবং তারপর ফাইল মুছে দিন।


এটি কীভাবে কাজ করে না (সংকলন থেকে দূরে থাকা)?
— আলবিন সুন্নানবো

উত্তর:


221

আছে: Path.ChangeExtensionপদ্ধতি। যেমন:

var result = Path.ChangeExtension(myffile, ".jpg");

ক্ষেত্রে আপনি যদি শারীরিকভাবে এক্সটেনশানটিও পরিবর্তন করতে চান তবে আপনি File.Moveপদ্ধতিটি ব্যবহার করতে পারেন :

File.Move(myffile, Path.ChangeExtension(myffile, ".jpg"));

তাহলে কী এটি এক্সপেনশনটিকে জেপিজিতে পরিবর্তন করবে? আসল ফাইলের?
— সফি

@ অ্যালেক্স আমি একটি ফাইল সরিয়ে নিচ্ছি না, আমি সি: \ .. \ .. \ a.jpg এর মতো ব্রোজার থেকে ফাইলের পাথ পাই এবং শারীরিক পথে ফাইল ফর্ম্যাটটি a.Jpeg হয়, তাই যখন আমি এটি মুছতে চেষ্টা করি তখন এটি আমাকে ত্রুটি দেয় যে নির্দিষ্ট পথে ফাইলটি খুঁজে পাচ্ছে না। তাই আমি ভাবছি ফাইল এক্সটেনশনের সাথে এটির কিছু মিলছে না। তাই আমি jpg কে Jpeg এ রূপান্তর করতে এবং তারপরে ফাইলটি মুছতে চেষ্টা করছি।
— সাফি

4
@ সাফি: আমি সন্দেহ করি যে ফাইল এক্সটেনশন যেমন বড় হাতের অক্ষরে পরিবর্তন করা ডিস্কে একটি ফাইল সন্ধান করবে। আপনি কি নিশ্চিত যে ফাইলটি c:\..\..\a.jpg(আপনার উদাহরণে) আসলেই বিদ্যমান? যদি হ্যাঁ, সম্ভবত আপনার কাছে এই ফাইলটি মোছার মতো যথেষ্ট ব্যক্তিগততা নেই? এবং পরিশেষে, আপনি যদি কেবল ফাইল এক্সটেনশন ব্যবহারটি প্রতিস্থাপন করতে চান var newFilePath = Path.ChangeExtension(myffile, ".Jpg");; newFilePathপরিবর্তিত এক্সটেনশানের সঙ্গে একটি নতুন ফাইল নাম থাকতে হবে, শারীরিকভাবে, ফাইল নাম (ডিস্কে) পরিবর্তন করা যাবে না।
— অ্যালেক্স

4
@ সাফি: দেখুন, var newPath = Path.ChangeExtension("c:/my documents/my images/cars/a where a is a.jpg", string.Empty)এটি প্রথম পদ্ধতির পরামিতি হিসাবে সংজ্ঞায়িত পথ থেকে এক্সটেনশনটিকে সরিয়ে ফেলবে; newPathস্ট্রিং পরিবর্তনশীল উপস্থিত থাকবে c:/my documents/my images/cars/a where a is a.এই অপারেশনের পর মান।
— অ্যালেক্স

4
আমরা অনেক কিছুর জন্য কোড তৈরি করি তবে ইতিমধ্যে .NET fx এ বিদ্যমান in File.Moveএবং Path.ChangeExtension। কুল! :-)
— কিংবদন্তি

17

পুনরায় নামকরণের জন্য আপনার ফাইলের একটি পদক্ষেপ করা উচিত। আপনার উদাহরণ কোডে আপনি কেবল স্ট্রিং পরিবর্তন করছেন, ফাইলটি নয়:

myfile= "c:/my documents/my images/cars/a.jpg";
string extension = Path.GetExtension(myffile); 
myfile.replace(extension,".Jpeg");

আপনি কেবল মাইফাইল পরিবর্তন করছেন (যা একটি স্ট্রিং)। আসল ফাইলটি সরাতে আপনার করা উচিত

FileInfo f = new FileInfo(myfile);
f.MoveTo(Path.ChangeExtension(myfile, ".Jpeg"));

FileInfo.MoveTo দেখুন


আমি কোনও ফাইল সরিয়ে নিচ্ছি না, আমি সি: \ .. \ .. \ a.jpg এর মতো ব্রোজার থেকে ফাইলের পাথ পাই এবং শারীরিক পথে ফাইল ফর্ম্যাটটি a.Jpeg হয়, তাই যখন আমি এটি মুছতে চেষ্টা করি তখন এটি আমাকে দেয় ত্রুটি নির্দিষ্ট পথে ফাইলটি খুঁজে পাচ্ছে না। তাই আমি ভাবছি ফাইলের এক্সটেনশনের সাথে এটির কিছু মিলছে না। তাই আমি jpg কে Jpeg এ রূপান্তর করতে এবং ফাইলটি মুছে ফেলার চেষ্টা করছি
— safi

প্রথম কোডটি কোনও প্রতিস্থাপন করে না। আপনার করা দরকারmyfile=myfile.Replace(extension,".Jpeg");
— কানসাইরোবট


4

GetFileNameWithoutExtensionনামটি যেমন বোঝায় মেথডটি ফাইলটিতে এক্সটেনশনটি দেয় না। আপনার ক্ষেত্রে এটি কেবল "ক" প্রত্যাবর্তন করবে। আপনি সেই ফলাফলটিতে আপনার ".জেপিজ" যুক্ত করতে চান। তবে, ভিন্ন স্তরে, এটি আশ্চর্যজনক বলে মনে হয়, কারণ চিত্র ফাইলগুলির আলাদা মেটাডেটা থাকে এবং এত সহজে রূপান্তর করা যায় না।


0

ফাইল ফর্ম্যাটটিকে পিএনজি-তে রূপান্তর করুন

string newfilename , 
 string filename = "~/Photo/"  + lbl_ImgPath.Text.ToString();/*get filename from specific path where we store image*/
 string newfilename = Path.ChangeExtension(filename, ".png");/*Convert file format from jpg to png*/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.