2 Ekim 2017 Pazartesi

File Sınıfı

Giriş
Şu satırı dahil ederiz.
using System.IO;
Bu sınıfın bütün metodları static, daha çok yardımcı bir sınıf gibi düşünülmeli.

AppendText metodu
Şöyle yaparız.
StreamWriter outputFile = File.AppendText("texter.txt");
outputFile.WriteLine("...");outputFile.Close();
Copy metodu
Şöyle yaparız. Üçüncü parametre true ise hedef dosyanın üzerine yazılır.
string strPath = ...;
string strSaveFile = ...;
File.Copy (strPath, strSaveFile, true);
CreateText metodu
Şöyle yaparız.
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path)) 
{
 sw.WriteLine("Hello");
}   
Delete metodu
Şöyle yaparız.
var tempOutPath = Path.GetTempFileName();
...
File.Delete(tempOutPath);
Exists metodu
Şöyle yaparız.
if (File.Exists(@"C:\test.txt") {...}
Move metodu
Örnek
Şöyle yaparız.
File.Move(sourceFile, destinationFile);
Örnek
Şöyle yaparız.
foreach (FileInfo f in infos)
{
  if(f.FullName.EndsWith(".txt"))
    File.Move(f.FullName, f.FullName.ToString().Replace(".txt", ".txt.NO"));
  else if(f.FullName.EndsWith(".jpg.NO"))
    File.Move(f.FullName, f.FullName.ToString().Replace(".jpg.NO", ".jpg"));
}
Open metodu
Bu metod yerine daha ozelleşmiş hali olan OpenText gibi metodlar kullanılabilir. Bir FileStream döner. Okumak için şöyle yaparız.
File.Open(filename, FileMode.Open);
Ekleme yapmak için şöyle yaparız.
string filename = "C:\\Temp\\registery.txt";
FileStream fs = File.Open (filename, FileMode.Append, FileAccess.Write);
Şöyle yaparız.
const string path = @"d:\export.txt";
using(FileStream fs = File.Open(path, 
  FileMode.OpenOrCreate, 
  FileAccess.ReadWrite, 
  FileShare.ReadWrite))
using(TextWriter sw = new StreamWriter(fs)) {  
  ...
}
OpenText metodu
Şöyle yaparız.
StreamReader inputFile = File.OpenText("texter.txt");
while (inputFile.EndOfStream == false)
{
  inputFile.ReadLine();
}
inputFile.Close();
ReadAllBytes metodu
İmzası şöyledir.
public static byte[] ReadAllBytes(string path);
Şöyle yaparız.
string pdfPath = ...;
byte[] buffer = File.ReadAllBytes(pdfPath);
Metodun içi şuna benzer.
static byte[] ReadAllFile(string filename)
{
  using (var file = File.OpenRead(filename))
  {
    using (var ms = new MemoryStream())
    {
      byte[] buff = new byte[file.Length];
      file.Read(buff, 0, (int)file.Length);
    }
  }
}
ReadAllLines metodu
Şöyle yaparız.
string[] lines = File.ReadAllLines(@"C:\Year.txt");
ReadAllText metodu
Şöyle yaparız.
string contents = File.ReadAllText(@"C:\Year.txt");
ReadLines metodu
Büyük dosyalar için ReadAllLines() metoduna tercih edilebilir. Açıklaması şöyle
"When you use ReadLines, you can start enumerating the collection of strings before the whole collection is returned; when you use ReadAllLines, you must wait for the whole array of strings be returned before you can access the array. Therefore, when you are working with very large files, ReadLines can be more efficient."
IEnumerable<string> döner. Metodun için şuna benzer. Okuma işlemi boyunca dosyayı açık tutar. Eğer dosyayı hemen kapatmak istersek ReadAllLines() metodunu kullanmak daha iyi.
private IEnumerable<string> ReadLine(string path)
{
  var file = OpenFile(path);
  while (file.Read())
  {
    yield return file.GetLine();
  }
  file.Close();
}
Örnek
Şöyle yaparız.
IEnumerable<string> lines = File.ReadLines("filePath");
Örnek
Şöyle yaparız.
string path_read = @"c:\read\file.txt";

foreach (var currentLine in File.ReadLines(path_read))
{
  ...
}
SetAttributes metodu
Şöyle yaparız.
File.SetAttributes("pathToTheFile", FileAttributes.ReadOnly);
SetCreationTime metodu
Şöyle yaparız.
File.SetCreationTime(destinationFile, DateTime.Now);
WriteAllLines metodu
Dosyayı baştan yaratır.
File.WriteAllLines(@"test.txt", new string[] { "a", "b", "c", "d" });
WriteAllText metodu
Şöyle yaparız.
string contents = ...;
File.WriteAllText(@"test.txt", contents);



Hiç yorum yok:

Yorum Gönder