1. 程式人生 > >檔案及資料流

檔案及資料流

System.IO名稱空間
在這裡插入圖片描述
System.IO名稱空間包含允許在資料流和檔案上進行同步和非同步讀取及寫入的型別
檔案和流的區別:
檔案是一些具有永久儲存及特定順序的位元組組成的一個有序的,具有名稱的集合.
流提供一種向後備儲存寫入位元組和從後備儲存讀取位元組的方式.後備儲存可以為多種儲存媒介之一.
File類和Directory類
File和Directory類分別用來對檔案和各種目錄進行操作,這兩個類可以被例項化但不能被其他類繼承。File類和Directory類可以進行檔案和資料夾的建立,複製,移動和刪除
1.File類中的方法都是靜態的,如果只想執行一個操作,那麼使用File類中的方法的效率迴避FileInfo類中的可能更高
在這裡插入圖片描述


例:使用file類中的方法

namespace 檔案及資料流技術
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("檔名不能為空");

            }
            else
            {
                if (File.Exists(textBox1.Text))
                {
                    MessageBox.Show("該檔案已經存在");
                }
                else
                {
                    File.Create(textBox1.Text);
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (textBox2.Text == "")
            {
                MessageBox.Show("請輸入要刪除的檔名稱");
            }
            else
            {
                File.Delete(textBox2.Text);
            }
        }

        
    }
}

Directory類
Directory類公開了用於建立移動列舉,刪除目錄和子目錄的靜態方法

在這裡插入圖片描述
FileInfo類
FileInfo類和File類之間許多方法都是相同的,但FileInfo沒有靜態方法,該類中的方法僅可以用於例項化物件.如果要對某個物件進行重複操作,應使用Fileinfo類
Fileinfo fi=new Fileinfo(path);
在這裡插入圖片描述
DirectoryInfo
在這裡插入圖片描述
遍歷資料夾
遍歷資料夾時,可以分別用DirectoryInfo類中的GetDirectories,GetFiles和GetFileSystemInfos方法.
1.GetDirectories
返回當前目錄的子目錄.該方法為可過載方法.
2.GetFiles
返回當前目錄的檔案列表
3.GetFileSystemInfos
返回表示某個目錄中所有檔案和子目錄的FileSystemInfo型別陣列
注:一般遍歷問件時,都使用GetFileSystemInfos方法,因為GetDirectories方法只遍歷檔案中的子資料夾,GetFiles只遍歷資料夾中的檔案,GetFileSystemInfos遍歷資料夾中的所有子資料夾及檔案