উত্তর:
ফাইল ক্লাসটি ব্যবহার করে এটি বেশ সোজা ।
if(File.Exists(@"C:\test.txt"))
{
File.Delete(@"C:\test.txt");
}
File.Existsচেক থেকে File.Delete, যদিও আপনি পরম পাথ ব্যবহার করছেন যদি আপনি নিশ্চিত করার জন্য চেক করতে হবে, যদি ফাইল উপস্থিত না থাকলে একটি ব্যতিক্রম নিক্ষেপ না পুরো ফাইল পাথ বৈধ।
@ফাইল পাথের আগে কেন আছে ? আমার জন্য এটি ছাড়া কাজ করে।
System.IO.File.Delete এর মতো ব্যবহার করুন :
System.IO.File.Delete(@"C:\test.txt")
ডকুমেন্টেশন থেকে:
যদি মুছে ফেলা ফাইলটির অস্তিত্ব না থাকে তবে কোনও ব্যতিক্রম ছুঁড়ে দেওয়া হবে না।
An exception is thrown if the specified file does not exist।
System.IO.File.Delete(@"C:\test.txt");যথেষ্ট। ধন্যবাদ
আপনি System.IOব্যবহার করে নেমস্পেসটি আমদানি করতে পারেন :
using System.IO;
যদি ফাইলপথ ফাইলটির পুরো পথটি উপস্থাপন করে তবে আপনি এর অস্তিত্বটি পরীক্ষা করতে পারেন এবং নীচে এটি মুছতে পারেন:
if(File.Exists(filepath))
{
try
{
File.Delete(filepath);
}
catch(Exception ex)
{
//Do something
}
}
আপনি যদি এড়াতে চান তবে আপনাকে DirectoryNotFoundExceptionঅবশ্যই নিশ্চিত করতে হবে যে ফাইলটির ডিরেক্টরি প্রকৃতপক্ষে রয়েছে। File.Existsএটি সম্পাদন করে আর একটি উপায় হ'ল এর মতো Pathএবং Directoryইউটিলিটি ক্লাসগুলি ব্যবহার করা :
string file = @"C:\subfolder\test.txt";
if (Directory.Exists(Path.GetDirectoryName(file)))
{
File.Delete(file);
}
if (System.IO.File.Exists(@"C:\Users\Public\DeleteTest\test.txt"))
{
// Use a try block to catch IOExceptions, to
// handle the case of the file already being
// opened by another process.
try
{
System.IO.File.Delete(@"C:\Users\Public\DeleteTest\test.txt");
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
return;
}
}
আপনি যদি ফাইলটি স্ট্রিম ব্যবহার করে সেই ফাইলটি পড়ছেন এবং তারপরে এটি মুছতে চান তবে ফাইলটি ডিলিট (পথ) কল করার আগে আপনি ফাইল স্ট্রিমটি বন্ধ করে রেখেছেন তা নিশ্চিত করুন। আমার এই সমস্যা ছিল।
var filestream = new System.IO.FileStream(@"C:\Test\PutInv.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
filestream.Close();
File.Delete(@"C:\Test\PutInv.txt");
usingবিবৃতি ব্যবহার করুন , যেখানে File.Delete()বন্ধনীগুলির বাইরে যাবে। উদাহরণস্বরূপ, আপনারও একটি করা উচিত filestream.Dispose();।
কখনও কখনও আপনি যে কোনও ফাইল ফাইল মুছতে চান (যেটি ব্যতিক্রম যাই ঘটুক না কেন, ফাইলটি মুছুন না)। এই ধরনের পরিস্থিতিতে।
public static void DeleteFile(string path)
{
if (!File.Exists(path))
{
return;
}
bool isDeleted = false;
while (!isDeleted)
{
try
{
File.Delete(path);
isDeleted = true;
}
catch (Exception e)
{
}
Thread.Sleep(50);
}
}
দ্রষ্টব্য: নির্দিষ্ট ফাইলটি উপস্থিত না থাকলে একটি ব্যতিক্রম ছুঁড়ে দেওয়া হবে না।
এটি হবে সহজতম উপায়,
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
System.Threading.Thread.Sleep(20);
}
Thread.sleep নিখুঁতভাবে কাজ করতে সহায়তা করবে, অন্যথায়, আমরা যদি ফাইলটি অনুলিপি করি বা লিখি তবে এটি পরবর্তী পদক্ষেপে প্রভাব ফেলবে।
আরেকটি উপায় আমি করেছি,
if (System.IO.File.Exists(filePath))
{
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.IO.File.Delete(filePath);
}