خواندن و نوشتن روی فایل ها در 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);
نظر / سوال