সি # /। নেট এ খালি ফাইল তৈরি করার সহজ / প্রমানিক উপায় কী?
আমি এখন পর্যন্ত সবচেয়ে সহজ উপায়টি খুঁজে পেলাম:
System.IO.File.WriteAllLines(filename, new string[0]);
সি # /। নেট এ খালি ফাইল তৈরি করার সহজ / প্রমানিক উপায় কী?
আমি এখন পর্যন্ত সবচেয়ে সহজ উপায়টি খুঁজে পেলাম:
System.IO.File.WriteAllLines(filename, new string[0]);
উত্তর:
জাস্ট ব্যবহারের File.Createফলে ফাইলটি উন্মুক্ত হয়ে যাবে, যা সম্ভবত আপনি চান তা নয়।
আপনি ব্যবহার করতে পারেন:
using (File.Create(filename)) ;
কিছুটা অদ্ভুত দেখাচ্ছে, মনে রাখবেন mind পরিবর্তে আপনি ধনুর্বন্ধনী ব্যবহার করতে পারেন:
using (File.Create(filename)) {}
অথবা কেবল Disposeসরাসরি কল করুন :
File.Create(filename).Dispose();
যে কোনও উপায়ে, আপনি যদি একাধিক জায়গায় এটি ব্যবহার করতে যাচ্ছেন তবে আপনার সম্ভবত এটি কোনও সহায়ক পদ্ধতিতে মোড়ানো বিবেচনা করা উচিত eg
public static void CreateEmptyFile(string filename)
{
File.Create(filename).Dispose();
}
লক্ষ্য করুন কলিং Disposeএকটি ব্যবহারের পরিবর্তে সরাসরি usingবিবৃতি সত্যিই যতটা আমি বলতে পারেন এখানে অনেক পার্থক্য করতে না - একমাত্র উপায় এটা পারে করা যদি থ্রেড থেকে কল মধ্যে বাতিল হয়েছে একটি পার্থক্য আছে File.Createএবং কল Dispose। যে জাতি শর্ত বিদ্যমান, আমি এটা হবে সন্দেহ এছাড়াও মধ্যে উপস্থিত using, সংস্করণ যদি থ্রেড খুব শেষে বাতিল করা হয়েছে File.Createপদ্ধতি, ঠিক আগে মান হয় ...
using (File.Create(filename)) ;, তবে আমি সরলতা পছন্দ করিFile.Create(filename).Dispose();
File.Create(filename).Dispose();পরিবর্তে ব্যবহার করছি ।
Close()পাশাপাশি সংস্থানগুলি প্রকাশ করবে। Close()সবেমাত্র কল করুন Dispose- github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/… দেখুন
using (new FileStream(filename, FileMode.CreateNew)) { }
File.WriteAllText("path", String.Empty);
অথবা
File.CreateText("path").Close();
File.WriteAllText(string, string)ব্যবহারসমূহ "UTF-8 এনকোডিং একটি বাইট-অর্ডার মার্ক ছাড়া (BOM)" । আপনি যদি এখনও একটি দেখতে পান তবে এটি রাইটিংএলটেক্সটে একটি বাগ বা রিপোর্টিংয়ের মূল্যবান ডকুমেন্টেশন।
Encoding.UTF8একটি এনকোডার প্রদান করে যা বাইট অর্ডার চিহ্ন (বিওএম) আউটপুট করে। আপনি new UTF8Encoding(false)কোনও ইউটিএফ 8 এনকোডার পেতে ব্যবহার করতে পারেন যা বিওএমকে আউটপুট দেয় না।
WriteAllText.NET এর পূর্ববর্তী সংস্করণে সত্যিই আলাদা আচরণ করে কিনা তা জানেন না । তবে অতিরিক্ত নিশ্চিত হওয়ার জন্য, কেবল এনকোডিং অংশটি এড়িয়ে যান এবং File.WriteAllBytes(path, new byte[] { });পরিবর্তে ব্যবহার করুন।
System.IO.File.Create(@"C:\Temp.txt");
অন্যরা যেমন নির্দেশ করেছে, আপনার উচিত এই বিষয়টিকে নিষ্পত্তি করা বা খালি এটি বিবরণ দিয়ে মোড়ানো উচিত।
using (System.IO.File.Create(@"C:\Temp.txt"));
দুর্ঘটনাক্রমে কোনও বিদ্যমান ফাইল ব্যবহারের ওভাররাইট করা এড়াতে:
using (new FileStream(filename, FileMode.CreateNew)) {}
... এবং আইওএক্সেপশন হ্যান্ডেল করুন যা ফাইলটি ইতিমধ্যে উপস্থিত থাকলে তা ঘটবে।
File.Create, যা অন্যান্য উত্তরে প্রস্তাবিত, ফাইলটি ইতিমধ্যে উপস্থিত থাকলে এর বিষয়বস্তুগুলিকে ওভাররাইট করে। সাধারণ ক্ষেত্রে আপনি এটি ব্যবহার করে প্রশমিত করতে পারেন File.Exists()। তবে একাধিক থ্রেড এবং / অথবা প্রক্রিয়া একই ফোল্ডারে একসাথে ফাইল তৈরি করার চেষ্টা করছে এমন পরিস্থিতিতে দৃশ্যের ক্ষেত্রে আরও শক্ত কিছু দরকার।
খালি ফাইল তৈরির জন্য কিছুটা সাধারণ ব্যবহারের ক্ষেত্র হ'ল প্রক্রিয়া যোগাযোগের ক্ষেত্রে আরও পরিশীলিতের অভাবে ভিন্ন প্রক্রিয়ায় ঘটে যাওয়া অন্য কোনও কিছুকে ট্রিগার করা। এই ক্ষেত্রে, এটি ফাইল তৈরির বাহ্যিক বিশ্বের দৃষ্টিভঙ্গি থেকে পারমাণবিক হতে সহায়তা করতে পারে (বিশেষত যদি জিনিসটি ট্রিগার করা হচ্ছে যা ট্রিগারটিকে "গ্রাস" করতে মুছে ফেলছে)।
সুতরাং আপনি যে ফাইলটি তৈরি করতে চান সেই একই ডিরেক্টরিতে একটি জাঙ্ক নাম (Guid.NewGuid.ToString ()) তৈরি করতে সহায়তা করতে পারে এবং তারপরে একটি ফাইল তৈরি করুন the অস্থায়ী নাম থেকে আপনার পছন্দসই নামটিতে সরান। অন্যথায় ট্রিগারযুক্ত কোড যা ফাইলের অস্তিত্বের জন্য যাচাই করে এবং তারপরে ট্রিগার মুছে ফেলা এমন রেস শর্তে চলে যেতে পারে যেখানে ফাইলটি পুরোপুরি বন্ধ হয়ে যাওয়ার আগে মুছে ফেলা হয়।
একই ডিরেক্টরিতে (এবং ফাইল সিস্টেম) টেম্প ফাইল থাকা আপনার পছন্দসই পারমাণবিকতা দেয়। এটি এরকম কিছু দেয়।
public void CreateEmptyFile(string path)
{
string tempFilePath = Path.Combine(Path.GetDirectoryName(path),
Guid.NewGuid.ToString());
using (File.Create(tempFilePath)) {}
File.Move(tempFilePath, path);
}
Path.GetTempFileName () একটি স্বতন্ত্র নামে খালি ফাইল তৈরি করবে এবং এর পথে ফিরে আসবে।
আপনি যদি পাথটি নিয়ন্ত্রণ করতে চান তবে একটি এলোমেলো ফাইলের নাম পেতে পারেন তবে আপনি কেবল ফাইলের নাম স্ট্রিং ফিরিয়ে দিতে এবং তৈরির মাধ্যমে এটি ব্যবহার করতে গেটআরন্ডমফিলনেম ব্যবহার করতে পারেন
উদাহরণ স্বরূপ:
string fileName=Path.GetRandomFileName();
File.Create("custom\\path\\" + fileName);