0
خواندن و نوشتن روی فایل ها در C#.Net
خواندن و نوشتن روی فایل ها به صورت یک کلاس در C#.Net
در این پست قصد داریم تا با استفاده از یک کلاس روی فایل های با فرمت های txt یا html و... با استفاده از C#.Net این نوع فایل ها رو بخوانیم و یا چیزی داخل آنها بنویسیم.
برای این کار کافیست یک کلاس به نام File ایجاد کنید و کدهای زیر را به آن اضافه کنید
/// <summary>
/// پیاده سازی متد های خواندن و نوشتن در فایل
/// </summary>
public static class File
{
//بدنه متد خواند یک فایل در پروژه
#region ReadFromFiles_Read(string pathName)
/// <summary>
/// متد خواندن فابل ها در پروژه
/// این متد یک مسیر فیزیکی میگیرد
/// </summary>
/// <param name="pathName"></param>
/// <returns></returns>
public static string Read(string pathName)
{
//اگر مسیر نال بود امپتی برمیگردونه
if (pathName == null)
{
return (string.Empty);
}
//تریم میکنیم
pathName = pathName.Trim();
//اگر باز خالی بود خالی برمیگردونه
if (pathName == string.Empty)
{
return (string.Empty);
}
//اگر فایل وجود نداشت خالی برمیگردونه
if (System.IO.File.Exists(pathName) == false)
{
return (string.Empty);
}
string strResult = string.Empty;
//از استریم ریدر استفاده کردیم
System.IO.StreamReader oStream = null;
try
{
oStream =
new System.IO.StreamReader(pathName, System.Text.Encoding.UTF8);
strResult = oStream.ReadToEnd();
}
//بستن شی استریم ریدر
finally
{
if (oStream != null)
{
oStream.Close();
oStream.Dispose();
oStream = null;
}
}
// ریترن میشه
return (strResult);
}
#endregion ReadFromFiles_Read(string pathName)
//بدنه متد نوشتن در فایل های پروژه
#region WriteToFiles_Write(string pathName, string text, bool append)
/// <summary>
/// متد رایت که یک مسیر و یک متن و یک بولین اپند میگیره
/// </summary>
/// <param name="pathName"></param>
/// <param name="text"></param>
/// <param name="append"></param>
public static void Write(string pathName, string text, bool append)
{
//اگر مسیر نال باشه از متد خارج میشود
if (pathName == null)
{
return;
}
//رشته حاوی مسیر تریم میشود
pathName = pathName.Trim();
//اگر امپتی شد از متد خارج میشود
if (pathName == string.Empty)
{
return;
}
//پارامتر دوم متد که یک متن هست اگر نال بود برابر با امپتی میشود
if (text == null)
{
text = string.Empty;
}
//از استریم رایتر استفاده کردیم
System.IO.StreamWriter oStream = null;
try
{
//نیو شدن استریم رایتر با پارامتر اول و سوم متد جاری
oStream =
new System.IO.StreamWriter(pathName, append, System.Text.Encoding.UTF8);
//نوشتن در متن که پرامتر دوم متد جاری است
oStream.Write(text);
}
//بستن شی استریم رایتر
finally
{
if (oStream != null)
{
oStream.Close();
oStream.Dispose();
oStream = null;
}
}
}
#endregion Write(string pathName, string text, bool append)
}
تمام جاهای که نیاز به توضیح دارد در بین کدها نوشته شده.
در این کلاس از دو متد استاتیک ، یکی برای خواندن فایل و دیگری برای نوشتن روی فایل ها نوشته شده است.
متد Read
متد Read مسیر فایل را دریافت کرده و سپس آن را خوانده و در نهایت یک رشته String بر میگرداند.
توجه کنید که باید به صورت زیر مسیر فایل را بدهید
File.Read(Server.MapPath("~/file/file1.txt"));
متد Write
متد Write ابتدا مسیر فایل و سپس رشته ای که می خواهید اضافه کنید را دریافت می کند و در نهایت مشخص می کنید که می خواهید رشته جدید بروی فایل اضافه شود یا جایگزین رشته قبلی شود که به صورت True و False می توانید مشخص کنید.
File.Write(Server.MapPath("~/file/file1.txt"),"newstr",true);
نظر / سوال