C#中IO類FileInfo和Directory操作實例


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Example
{
    
    class Program
    {
   
        static void Main(string[] args)
        {
            ////////////////   文件打開  下面的代碼打開D:\wang.txt文件,並且向文件中寫入"hello"
            FileStream textFile = File.Open(@"D:\wang.txt", FileMode.Append);//以Append方式打開文件(如果不存在,會創建)
            byte[] info = { (byte)'h', (byte)'e', (byte)'l', (byte)'l', (byte)'o' };//要寫入的信息
            textFile.Write(info, 0, info.Length);//Write方法只能寫入byte數組                        
            textFile.Close();//關閉文件流
           
 
            ////////////////////// 文件創建    
            FileStream newText = File.Create(@"D:\newText.txt");//創建文件
            newText.Close();//關閉文件

            ////////////////////  刪除文件
            File.Delete(@"d:\newText.txt");

            //////////////////  文件復制   如果目標文件存在,不允許復制(就是不能覆蓋同名文件)
            //File.Copy(@"d:\wang.txt", @"d:\CopyWang.txt");


            ////////////////  文件移動  只能在同一個盤中移動  如果目標路徑不正確,不能移動
           // File.Move(@"d:\CopyWang.txt", @"D:\A\movewang.txt");

            ////////////////////////  設置文件屬性為 只讀,隱藏
            //File.SetAttributes(@"D:\copywang.txt", FileAttributes.ReadOnly | FileAttributes.Hidden);//同時滿足多個屬性,必須用位或(|).

            ///////////////  判斷文件是不是存在
            if (File.Exists(@"D:\copywang.txt"))//如果存在  即便是隱藏的文件也可以找到
            {
                File.SetAttributes(@"D:\copywang.txt", FileAttributes.ReadOnly);//重新設置屬性后,隱藏的文件也會顯示出來,只要不加Hidden屬性
                Console.WriteLine("找到文件copywang.txt");
            }
            else
            {
                Console.WriteLine("沒有找到文件CopyWang.txt");
            }
            /*
            此外,File類對於Text文本提供了更多的支持。
          ?AppendText:將文本追加到現有文件
          ?CreateText:為寫入文本創建或打開新文件
          ?OpenText:打開現有文本文件以進行讀取
          但上述方法主要對UTF-8的編碼文本進行操作,從而顯得不夠靈活。在這里推薦讀者使用下面的代碼對txt文件進行操作。
          ?對txt文件進行“讀”操作,示例代碼如下:   
             */
            StreamReader textReader = new StreamReader(@"D:\wang.txt", System.Text.Encoding.Default);//以默認編碼方式打開文件
            string str = textReader.ReadToEnd();//讀取文件
            Console.WriteLine("使用StreamReader讀取文本內容:" + str);
            textReader.Close();

            //////////////////對txt文件寫內容
            StreamWriter textWriter = new StreamWriter(@"D:\wang.txt");
            str = "Learn .Net";
            textWriter.Write(str);
            textWriter.Close();

            /*
            System.IO.Directory類和System.DirectoryInfo類
           主要提供關於目錄的各種操作,使用時需要引用System.IO命名空間。下面通過程序實例來介紹其主要屬性和方法。 
            */
            Directory.CreateDirectory(@"D:\wang1\wang");//創建目錄(文件夾)如果已經存在,則保持;還可以一次創建多級目錄

            /////////////////////////////////目錄屬性設置方法
            DirectoryInfo dirInfo = new DirectoryInfo(@"D:\wang1\wang");//
            dirInfo.Attributes = FileAttributes.Hidden;// | FileAttributes.ReadOnly;//設置文件夾屬性

            /////////////////Delete方法的第二個參數為bool類型,它可以決定是否刪除非空目錄。
            //如果該參數值為true,將刪除整個目錄,即使該目錄下有文件或子目錄;若為false,則僅當目錄為空時才可刪除。 
            //Directory.Delete(@"D:\wang1", true);//如果文件設置為ReadOnly,則不能刪除

            //Directory.Move(@"d:\wang1", @"d:\wang3");//把文件夾wang1移動到文件夾wang3中,相當於把wang1刪除,創建一個wang3,再把內容移動到wang3

            string[] Directories = Directory.GetDirectories(@"D:\wang3");//獲得文件夾wang3的目錄
            foreach (string var in Directories)
                Console.WriteLine(var);

            string[] Files = Directory.GetFiles(@"D:\wang1");//獲取文件夾wang1下面的所有文件
            foreach (string var in Files)
                Console.WriteLine(var);

            if (Directory.Exists(@"D:\wang1"))
                Console.WriteLine("文件夾wang1存在");

            /*
            在C#中 “\”是特殊字符,要表示它的話需要使用“\\”。由於這種寫法不方便,C#語言提供了@對其簡化。只要在字符串前加上@即可直接使用“\”。
                所以上面的路徑在C#中應該表示為“Book”,@“\Tmp\Book”,@“C:\Tmp\Book”。
            */

            Console.ReadLine();   
 
        }
    }
}

一些操作由於互相關聯,因此加了注釋,看該文章時,只需把代碼復制下來從前到后一點一點的運行就可以看到結果。(可以先把后面的注釋掉,通過加/*  */).

 

參考:http://blog.163.com/xiao_mege/blog/static/729427532010993582453/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM