সি # তে নোটপ্যাড দিয়ে একটি ফাইল খুলুন


116

আমি সি # তে কিভাবে ফাইল খুলব? আমি এটি পাঠ্যপাদক এবং পঠন পাঠক () দ্বারা পড়া বোঝাতে চাইছি না। মানে নোটপ্যাডে এটি একটি স্বাধীন ফাইল হিসাবে খুলুন।


আপনি আপনার প্রোগ্রাম থেকে নোটপ্যাডের একটি উদাহরণ চালু করতে চান এবং এটি একটি নির্দিষ্ট ফাইল খুলতে চান?
29:39

1
দ্রষ্টব্য: যখন আমি নেট নেট ২.০ দিয়ে চেষ্টা করেছি তখন Process.Startস্বয়ংক্রিয়ভাবে "% উইন্ডির%" প্রসারিত হয়নি, যদিও এটি বৌভবের উত্তরে বাদ দেওয়া হয়েছে বা স্পষ্টভাবে এটি প্রসারিত ( Environment.GetEnvironmentVariable("windir")) সফলভাবে কাজ করেছে।
ব্রায়ান

আপনি আপনার অ্যাপ্লিকেশনটিতে একটি নোটপ্যাড ক্লোন একীভূত করতে পারেন এবং এটি যেমন চান তেমন কাজ করতে কাস্টমাইজ করতে পারেন। আমি সি # তে একটি নোটপ্যাড ক্লোন লিখছি আপনি এটি এখানে পেতে পারেন: কেবলগডকোড ডটকম
লুইস পেরেজ 19

উত্তর:


190

আপনি প্রয়োজন System.Diagnostics.Process.Start()

সবচেয়ে সহজ উদাহরণ:

Process.Start("notepad.exe", fileName);

আরও জেনেরিক পদ্ধতি:

Process.Start(fileName);

দ্বিতীয় পদ্ধতির সম্ভবত একটি আরও ভাল অনুশীলন কারণ এটি উইন্ডোজ শেলকে আপনার ফাইলটিকে সম্পর্কিত সম্পাদকের সাথে খুলতে দেবে। অতিরিক্তভাবে, নির্দিষ্ট করা ফাইলটির কোনও সমিতি না থাকলে এটি Open With...উইন্ডো থেকে ডায়লগটি ব্যবহার করবে ।

মন্তব্যগুলিতে তাদের নোট করুন, আপনার ইনপুটটির জন্য ধন্যবাদ ou আমার দ্রুত এন 'নোংরা উত্তরটি সামান্য বন্ধ ছিল, সঠিক উত্তর প্রতিফলিত করার জন্য আমি উত্তরটি আপডেট করেছি।


1
আমি আপনি হলে আমি কিছু পালাতে হবে।
Albin Sunnanbo

1
আমি একমত যে এটি করার একটি উপায়, আপনি যদি নথিটি খুলতে চান তবে প্রোগ্রামটি পরিচালনা না করতে চান তবে এই ফাইলটি লোড করার জন্য: richTextBox1.LoadFile (Program.editInC, RichTextBoxStreamType.UnicodePlainText) এর সাথে কিছু ব্যবহার করা হবে the একটি ফাইলের মধ্যে প্রকৃত বিষয়বস্তু।
জিম

1
দ্বিতীয় প্যারামিটার হিসাবে ফাইলের নামটি উত্তরণ করা ভাল। প্রকৃতপক্ষে, ডকুমেন্টেশন অনুসারে , আপনার কোডটি কাজ করা উচিত নয়, কারণ এর একক প্যারামিটারটি Process.Startনথি বা অ্যাপ্লিকেশন ফাইলের নাম, তবে আপনার আদেশটি হ'ল কমান্ড লাইন প্যারামিটারের সাথে মিলিত নাম।
ভ্লাদ

@ অ্যালবিন: ধন্যবাদ, সম্পূর্ণরূপে এটিকে উপেক্ষা করা হয়েছে: পি @ জিম: আমি বিশ্বাস করি যে প্রশ্নটি সম্পাদককে কীভাবে চালু করবেন জিজ্ঞাসা করেছিল। @ ভ্লাদ: ধন্যবাদ, আপনি ঠিক বলেছেন।
আরেন

11
ব্যবহার Process.Start(filename)একটি সম্ভাব্য কমান্ড ইনজেকশন, যেখানে কোনো আক্রমণকারী প্রতিস্থাপন পারে MyTextFile.txtজন্য MyMalicious.batবা fdisk ...। ব্যবহার করা ভাল Process.Start("notepad.exe", filename)
জেফ বেনেট

29

আপনি প্রচুর তথ্য সরবরাহ করছেন না, তবে ধরে নিচ্ছেন যে আপনি সেই ফাইল টাইপের জন্য ডিফল্ট হ্যান্ডলারের জন্য নির্দিষ্ট অ্যাপ্লিকেশনটি দিয়ে আপনার কম্পিউটারে কেবল কোনও ফাইল খুলতে চান, আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:

var fileToOpen = "SomeFilePathHere";
var process = new Process();
process.StartInfo = new ProcessStartInfo()
{
    UseShellExecute = true,
    FileName = fileToOpen
};

process.Start();
process.WaitForExit();

ইউজশেলএক্সেকিউট প্যারামিটারটি আপনি যে ধরণের ফাইলটি খুলছেন তার জন্য উইন্ডোজকে ডিফল্ট প্রোগ্রামটি ব্যবহার করতে বলে।

আপনার অপেক্ষা করা অ্যাপ্লিকেশনটি বন্ধ না হওয়া পর্যন্ত ওয়েটফরেক্সট আপনার অ্যাপ্লিকেশনটির জন্য অপেক্ষা করবে।


এবং, এছাড়াও, if(File.Exists(fileToOpen))একটি ব্যতিক্রম না চালানো এড়াতে এটি ব্যবহার করা ভাল ।
উইকসিও

26

এটি ডিফল্ট উইন্ডোজ প্রোগ্রামের সাথে ফাইলটি খুলবে (আপনি যদি এটি পরিবর্তন না করেন তবে নোটপ্যাড);

Process.Start(@"c:\myfile.txt")


12

প্যারামিটার হিসাবে ফাইলের সাথে Process.Startকল করে আপনি ব্যবহার করতে পারেন notepad.exe

 Process.Start(@"notepad.exe", pathToFile);

2
যাইহোক,% pathVariables% এই পদ্ধতিতে কাজ করে না। Process.Start(@"%windir%\notepad.exe");একটি Win32Exception নিক্ষেপ করে: "ফাইল খুঁজে পাওয়া যায় না" তবে সাধারণত এটি কাজ করা উচিত।
আরেন

@Aren: কোন সমাধান করা যেতে পারে Environment.ExpandEnvironmentVariables () কলিং
sɐunıɔ ןɐ qɐp

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