Csharp/C Sharp by API/System.IO/File

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

File.CreateText(String fileName)

  
using System;
using System.IO;
class MainClass
{
  static void Main(string[] args)
  {
    StreamWriter MyStream = null;
    string MyString = "Hello World";
    try
    {
      MyStream = File.CreateText("MyFile.txt");
      MyStream.Write(MyString);
    }
    catch (IOException e)
    {
      Console.WriteLine(e);
    }
    catch (Exception e)
    {
      Console.WriteLine(e);
    }
    finally
    {
      if (MyStream != null)
        MyStream.Close();
    }
  }
}


File.Delete

 

using System;
using System.IO;
class MainClass {
    static void Main() {
        string tempFile = Path.GetTempFileName();
        Console.WriteLine("Using " + tempFile);
        using (FileStream fs = new FileStream(tempFile, FileMode.Open)) {
            // (Write some data.)
        }
        // Now delete the file.
        File.Delete(tempFile);
    }
}


File.Exists(String fileName)

  
using System;
using System.IO;
static class MainClass
{
    static void Main(string[] args)
    {
        Console.WriteLine(File.Exists("c:\\test.txt"));
    }
}


File.GetLastAccessTime

 
using System;
using System.Windows.Forms;
using System.IO;
public class MainClass 
{
    [STAThread]
  public static void Main() 
  {
    OpenFileDialog dlgOpen = new OpenFileDialog();
    if (dlgOpen.ShowDialog() == DialogResult.OK)
    {
      string s = dlgOpen.FileName;
      Console.WriteLine("Filename " + s);
      Console.WriteLine(" Created at " + File.GetCreationTime(s));
      Console.WriteLine(" Accessed at " + 
       File.GetLastAccessTime(s));
    }
  }
}


File.OpenRead

 
using System;
using System.Windows.Forms;
using System.IO;
class MainClass
{
  public static void Main() 
  {
    FileStream inStream = File.OpenRead("c:\\text.txt");
    FileStream outStream = File.OpenWrite("c:\\text.txt" + ".bak");
    
    BufferedStream bufInStream = new BufferedStream(inStream);
    BufferedStream bufOutStream = new BufferedStream(outStream);
    byte[] buf = new byte[1024];
    int bytesRead;
    while ((bytesRead = bufInStream.Read(buf, 0, 1024)) > 0)
      bufOutStream.Write(buf, 0, bytesRead);
    bufOutStream.Flush();
    bufOutStream.Close();
    bufInStream.Close();
    outStream.Close();
    inStream.Close();
  }
}


File.OpenText

 
using System;
using System.IO;
    public class Exists
    {
        static public void Main (string [] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine ("Please enter a file name");
                return;
            }
            if (!File.Exists (args[0]))
            {
                Console.WriteLine (args[0] + " does not exist");
                return;
            }
            StreamReader reader;
            try
            {
                reader = File.OpenText (args[0]);
            }
            catch (Exception e)
            {
                Console.WriteLine (e.Message);
                Console.WriteLine ("Cannot open " + args[0]);
                return;
            }
            while (reader.Peek() >= 0)
            {
                Console.WriteLine (reader.ReadLine ());
            }
            reader.Close ();
        }
    }


File.OpenWrite

 

using System;
using System.Windows.Forms;
using System.IO;
class MainClass
{
  public static void Main() 
  {
    FileStream inStream = File.OpenRead("c:\\text.txt");
    FileStream outStream = File.OpenWrite("c:\\text.txt" + ".bak");
    
    BufferedStream bufInStream = new BufferedStream(inStream);
    BufferedStream bufOutStream = new BufferedStream(outStream);
    byte[] buf = new byte[1024];
    int bytesRead;
    while ((bytesRead = bufInStream.Read(buf, 0, 1024)) > 0)
      bufOutStream.Write(buf, 0, bytesRead);
    bufOutStream.Flush();
    bufOutStream.Close();
    bufInStream.Close();
    outStream.Close();
    inStream.Close();
  }
}


File.ReadAllLines(String fileName)

  
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class MainClass
{
    static void Main(string[] args)
    {
        StreamWriter writer = new StreamWriter(@"c:\myfile.txt");
        for (int i = 0; i < 3; i++)
        {
            writer.Write(i.ToString());
        }
        writer.Flush();
        writer.Close();
        foreach (string line in File.ReadAllLines(@"c:\myfile.txt"))
        {
            Console.WriteLine(line);
        }
    }
}


File.SetAccessControl

 
using System;
using System.IO;
using System.Security.AccessControl;
class MainClass {
    static void Main(string[] args) {
        FileStream stream;
        string fileName;
        fileName = Path.GetRandomFileName();
        using (stream = new FileStream(fileName, FileMode.Create)) {
            // Do something.
        }
        SetRule(fileName, "Everyone", FileSystemRights.Read, AccessControlType.Deny);
        try {
            stream = new FileStream(fileName, FileMode.Create);
        } catch (Exception ex) {
            Console.WriteLine(ex.ToString());
        } finally {
            stream.Close();
            stream.Dispose();
        }
    }
    static void AddRule(string filePath, string account, FileSystemRights rights, AccessControlType controlType) {
        FileSecurity fSecurity = File.GetAccessControl(filePath);
        fSecurity.AddAccessRule(new FileSystemAccessRule(account, rights, controlType));
        File.SetAccessControl(filePath, fSecurity);
    }
    static void SetRule(string filePath, string account, FileSystemRights rights, AccessControlType controlType) {
        FileSecurity fSecurity = File.GetAccessControl(filePath);
        fSecurity.ResetAccessRule(new FileSystemAccessRule(account, rights, controlType));
        File.SetAccessControl(filePath, fSecurity);
    }
}


File.WriteAllLines(String fileName, String[] lines)

  
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class MainClass
{
    static void Main(string[] args)
    {
        string[] lines = new string[10];
        for (int i = 0; i < 10; i++)
        {
            lines[i] = String.Format( "This is line number {0}", i);
        }
        File.WriteAllLines(@"c:\test.txt", lines);
        foreach (string line in File.ReadAllLines(@"c:\test.txt"))
        {
            Console.WriteLine(line);
        }
    }
}