تیر ۷, ۱۳۹۸ Mostafa بدون دیدگاه

اگر دنبال برنامه نویس برای ساخت افزونه ،قالب،سایت،برنامه ویندوز،اپلیکیشین اندروید،ربات تلگرام و.... هستید ،سفارش برنامه نویسی را مطالعه نمایید.

توجه : درخواست افزونه ،قالب، اسکریپت و نرم افزار و ... و سوالات و مشکلات خود را در انجمن ارسال نمایید

از کلاس FileInfo برای انجام عملیات ورودی و خروجی بر روی یک فایل فیزیکی استفاده می‌کنیم. کلاس FileInfo همچون کلاس File قابلیت‌ عملیات بر روی فایل ها را برای ما فراهم می آورد. با این حال با استفاده از کلاس استاتیک FileInfo می توان کنترل بیشتری بر روی عملیات خواندن و نوشتن اعمال کرد.

نمونه مثال زیر نشان می‌دهد که چطور می‌توان بایت ها را از یک فایل خوانده و سپس آنها را به یک رشته با فرمت UTF8 تبدیل کرد :

//Create object of FileInfo for specified path            
FileInfo fi = new FileInfo(@"D:\DummyFile.txt");

//Open file for Read\Write
FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); 

//create byte array of same size as FileStream length
byte[] fileBytes = new byte[fs.Length];

//define counter to check how much bytes to read. Decrease the counter as you read each byte
int numBytesToRead = (int)fileBytes.Length;

//Counter to indicate number of bytes already read
int numBytesRead = 0;

//iterate till all the bytes read from FileStream
while (numBytesToRead > 0)
{
    int n = fs.Read(fileBytes, numBytesRead, numBytesToRead);
        
    if (n == 0)
        break;

    numBytesRead += n;
    numBytesToRead -= n;
}

//Once you read all the bytes from FileStream, you can convert it into string using UTF8 encoding
string filestring = Encoding.UTF8.GetString(fileBytes);

همانطور که در کد نمونه مثال بالا مشاهده می کنید شما باید برای خواندن و نوشتن یک رشته از یک FileStream کد زیادی را بنویسید. عملیات خواندن و نوشتن می‌تواند به روش ساده تری با استفاده از کلاس StreamReader و StreamWriter انجام بگیرد.

 

صفات FileInfo

خصوصیت توضیحات
Attributes این مورد برای دریافت یا تنظیم صفات برای فایل یا دایرکتوری فعلی مورد استفاده قرار می گیرد.
CreationTime این مورد برای دریافت یا تنظیم زمان ایجاد فایل یا دایرکتوری فعلی استفاده می شود.
Directory این مورد برای دریافت نمونه از پوشه والد استفاده می شود.
DirectoryName برای گرفتن یک رشته از مسیر کامل دایرکتوری استفاده می شود.
Exists این مقدار برای نشان دادن اینکه آیا یک فایل وجود دارد یا خیر، استفاده می شود.
FullName برای استفاده از مسیر کامل دایرکتوری یا فایل مورد استفاده قرار می گیرد.
IsReadOnly این استفاده می شود برای دریافت یا تنظیم یک مقدار که تعیین می کند که آیا فایل فعلی فقط خواندن است.
LastAccessTime این استفاده می شود برای دریافت و یا تنظیم زمان از فایل فعلی یا دایرکتوری آخرین دسترسی بود.
Length برای استفاده از اندازه در بایت فایل فعلی استفاده می شود.
Name این نام برای نام فایل استفاده می شود.

 

متد های FileInfo

متد توضیحات
AppendText() این برای ایجاد StreamWriter استفاده می شود که متن را به فایل ارائه شده توسط این نمونه از FileInfo می افزاید.
CopyTo(String) این پرونده برای کپی فایل موجود در یک فایل جدید مورد استفاده قرار می گیرد.
Create() این برای ایجاد یک فایل استفاده می شود.
CreateText() این برای ایجاد StreamWriter است که یک فایل متنی جدید را می نویسد.
Decrypt() این برای رمزگشایی یک فایل که توسط حساب جاری با استفاده از روش رمزنگاری رمزگذاری شده است استفاده می شود.
Delete() این فایل برای همیشه حذف می شود.
Encrypt() این پرونده برای رمزگذاری یک پرونده استفاده می شود، بنابراین تنها حساب کاربری مورد استفاده برای رمزگذاری فایل می تواند آن را رمزگشایی کند.
GetAccessControl() این مورد برای گرفتن یک شی FileSecurity استفاده می شود که لیست ورودی کنترل دسترسی (ACL) را دربر می گیرد.
MoveTo(String) این برای انتقال یک فایل مشخص شده به مکان مشخص شده مورد استفاده قرار می گیرد.
Open(FileMode) این برای باز کردن یک فایل در حالت مشخص استفاده می شود.
OpenRead() این برای ایجاد FileStream فقط خواندنی استفاده می شود.
OpenText() این برای ایجاد یک StreamReader با رمزگذاری UTF8 استفاده می شود که از یک فایل متنی موجود خوانده می شود.
OpenWrite() این برای ایجاد یک FileStream فقط برای نوشتن استفاده می شود.
Refresh() این برای اصلاح وضعیت شی مورد استفاده قرار می گیرد.
Replace(String,String)
این مورد برای جایگزینی محتویات یک فایل مشخص شده با فایل توضیح داده شده توسط فعلی FileInfo مورد استفاده قرار می گیرد.
ToString() این مورد برای بازگشت مسیر به عنوان یک رشته استفاده می شود.

 

مثال : ایجاد فایل

using System;  
using System.IO;  
namespace CSharpProgram  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            try  
            {  
                // Specifying file location  
                string loc = "F:\\abc.txt";  
                // Creating FileInfo instance  
                FileInfo file = new FileInfo(loc);  
                // Creating an empty file  
                file.Create();  
                Console.WriteLine("File is created Successfuly");  
            }catch(IOException e)  
            {  
                Console.WriteLine("Something went wrong: "+e);  
            }  
        }  
    }  
}

مثل : نوشتن در فایل

using System;  
using System.IO;  
namespace CSharpProgram  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            try  
            {  
                // Specifying file location  
                string loc = "F:\\abc.txt";  
                // Creating FileInfo instance  
                FileInfo file = new FileInfo(loc);  
                // Creating an file instance to write  
                StreamWriter sw = file.CreateText();  
                // Writing to the file  
                sw.WriteLine("This text is written to the file by using StreamWriter class.");  
                sw.Close();  
            }catch(IOException e)  
            {  
                Console.WriteLine("Something went wrong: "+e);  
            }  
        }  
    }  
}

مثال : خواندن متن ار فایل

using System;  
using System.IO;  
namespace CSharpProgram  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            try  
            {  
                // Specifying file to read  
                string loc = "F:\\abc.txt";  
                // Creating FileInfo instance  
                FileInfo file = new FileInfo(loc);  
                // Opening file to read  
                StreamReader sr = file.OpenText();  
                string data = "";  
                while ((data = sr.ReadLine()) != null)  
                {  
                     Console.WriteLine(data);  
                }  
            }  
            catch (IOException e)  
            {  
                Console.WriteLine("Something went wrong: " + e);  
            }  
        }  
    }  
}

 


برچسب ها