在網站開發過程中,經常要涉及對文件的操作,因此要實現多文件的上傳、文件的永久刪除以及對文件的搜索、下載和查看等多方面的操作。
1,獲取文件的大小
步驟:
(一):創建一個Windows窗體應用程序
(二):在該窗體中添加一個按鈕,用來打開指定文件,取其大小。
(三):代碼如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 OpenFileDialog openFile = new OpenFileDialog();//創建打開文件對話對話框對象 4 if (openFile.ShowDialog() == DialogResult.OK)//判斷是否選中文件 5 { 6 MessageBox.Show("文件長度:"+File.Open(openFile.FileName,FileMode.Open).Length.ToString()+"字節");//彈出消息對話框 7 } 8 }
(四):運行結果:
上一例子中,使用File類的Open方法打開指定的文件,然后使用FileStream類的Length屬性獲取文件的長度。
1,File類的Open方法用來打開指定路徑上的FileStream,具有讀/寫訪問權限。語法如下:
public static FileStream Open(string path,FileMode mode);
參數說明
path:要打開的文件
mode:FileMode枚舉值之一,用於指定在文件不存在時是否創建該文件,並確定是保留還是覆蓋現有的文件的內容。FileMode枚舉值及說明如下
返回值:以指定模式打開的指定的路徑上的FlieStream,具有讀/寫訪問權限並且不共享。
枚舉值 | 描述 |
CreateNew | 指定操作系統應創建新文件 |
Create | 指定操作系統應創建新文件。如果文件已存在,它將被覆蓋。 |
Open | 指定操作系統應打開現有的文件。 |
OpenOrCreate | 指定操作系統應打開文件(如果文件已存在):否則,應創建新文件 |
Truncate | 指定操作系統應打開現有的文件。文件一旦被打開,就將被截斷為零字節大小 |
Append | 打開現有文件並查找到文件尾。或創建新文件 |
2,FlieStream類的Length屬性
FlieStream類的Length屬性用來獲取用字節表示的流長度。格式語法如下:
public override long Length { get; }
秘技心法:打開對話框使用OpenFileDialog控件來表示,它表示一個通用對話框,用戶可以使用對話框來指定一個或多個要打開的文件的文件名。我們可以用
OpenFileDialog控件的ShowDialog方法顯示“打開”對話框。
2,獲取文件的拓展名
步驟:
(一):創建一個Windows窗體應用程序
(二):在該窗體中添加一個按鈕,用來打開指定文件,取其拓展名。
(三):代碼如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 OpenFileDialog openFile = new OpenFileDialog();//創建打開文件對話框對象 4 if (openFile.ShowDialog() == DialogResult.OK)//判斷是否選中文件 5 { 6 MessageBox.Show("文件的拓展名:" + openFile.FileName.Substring(openFile.FileName.LastIndexOf(".") + 1,openFile.FileName.Length-openFile.FileName.LastIndexOf(".")-1),"提示");//彈出消息對話框 7 } 8 }
(四):運行結果:
上一個例子中獲取文件拓展名,主要是通過從文件名中截取相應的字符串來實現的,其中主要用到了string類的SubString方法。
SubString方法用來從指定的字符位置開始截取指定長度的字符串。其語法如下:
public string Substring(int startIndex, int length);
參數說明:
1,startIndex:子字符串的起始位置的索引。
2,length:要截取的字符數。
3,返回值:一個String文本字符串,表示截取的字符串。
秘技心法:”打開“對話框的返回值可以使用DialogResult枚舉來獲取,該枚舉指定標識符以指示對話框的返回值。例如,要獲取“打開”對話框的返回值是否為“確定”按鈕,可以使用以下代碼實現:
if (openFile.ShowDialog() == DialogResult.OK)
3,獲取文件的最后一次修改時間
步驟:
(一):創建一個Windows窗體應用程序
(二):在該窗體中添加一個按鈕,用來打開指定文件,取其創建時間。
(三):代碼如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 OpenFileDialog openFile = new OpenFileDialog();//創建打開文件對話框對象 4 if (openFile.ShowDialog() == DialogResult.OK)//判斷是否選中文件 5 { 6 FileInfo info = new FileInfo(openFile.FileName);//創建FileInfo對象 7 8 MessageBox.Show("文件的創建日期:" +info.CreationTime.ToString() , "提示");//彈出消息對話框 9 } 10 }
(四):運行結果:
上一個例子中主要用到了FileInfo類的LastWriteTime屬性,下面對其進行詳解:
FileInfo類的LastWriteTime屬性用來獲取或設置上次寫入當前文件的時間。其語法格式為:
public DateTime LastWriteTime { set; get; }
4,獲取文件名中禁止使用的字符
在Windows操作系統中新建文件時,如果輸入了非法字符,系統會提示錯誤,那么文件的名稱究竟不允許哪些非法字符?詳情如下:
步驟:
(一):創建一個Windows窗體應用程序
(二):在該窗體中添加一個按鈕,用來打開指定文件,用來獲取路徑名中禁止使用的字符,添加一個RichTextBox控件,用來顯示路徑名中所有禁止使用的字符。
(三):代碼如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 foreach (char c in Path.GetInvalidFileNameChars())//得到不允許使用字符數組 4 { 5 richTextBox1.Text += c + "\t";//輸出數組內容 6 } 7 }
(四):運行結果:
上一個例子中主要用到path類的GetInvalidFileNameChars方法,下面對其詳解:
path類用來對包含文件目錄或目錄路徑信息的String實例執行操作,其GetInvalidFileNameChars屬性主要用來獲取包含不允許在文件名使用的字符的數組。其格式語法如下:
public static char[] GetInvalidFileNameChars();
參數說明:
返回值:包含不允許在文件中使用的字符的數組。