程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C# Directory和Directory Info的應用及文件讀寫

C# Directory和Directory Info的應用及文件讀寫

編輯:關於C#

一,Directory 和Directory Info的應用

在Asp,net的實際應用中,上傳文件的實現過程中要用到有關目錄的操作,來現實文件的上傳工作.下面分析下用C#完成文件上傳過程的核心代碼,其中控件FileUpload用來獲取文件/

-------------代碼段----------

string filename = FileUploadFileName;//獲取上傳文件的名字

string filetype = FileUploadFileName.Substring(filename.LastIndexOf(".")+1).ToLower();

上傳文件的格式

if (filetype == "rar" || filetype == "doc" || filetype == "txt" || filetype == "pdf")

{//判斷是文件格式是否是指定的格式

if (FileUploadFileBytes.Length <= 50 * 1024 * 1024)//判斷文件的大小是否滿足要求

{

DirectoryInfo filedir = new DirectoryInfo(Server.MapPath("fileupload/"));//獲取文件夾fileupload在系統中的相對目錄.

// 創建DirectoryInfo實例對象 filedir用來指向保存上傳文件的目錄.

if (!Directory. Exists(filedir.ToString()))Directory類的靜態方法,用來判斷目錄是否存在

{

Directory.CreateDirectory(filedir.ToString());//如果所要求的目錄不存在,調用Directory的靜態方法CreateDirectory創建目錄.

}

-------------代碼段----------

DirectoryInfo常用方法:

DirectoryInfo dif = new DirectoryInfo("c:\\abcd");

DirectoryInfo temp = new DirectoryInfo("c:\\atest");

DirectoryInfo temp3 = new DirectoryInfo("C:\\");

if (!dif.Exists)

dif.Create();

if (!temp.Exists)

Directory.CreateDirectory(temp.ToString());

if (temp.Exists)

temp.Delete();

dif.MoveTo(temp.ToString());

DirectoryInfo[] idr = temp3.GetDirectories();//獲取當前目錄下的所有子目錄.

foreach (DirectoryInfo dir in idr)

Console.WriteLine(dir.FullName);

FileInfo[] files = temp3.GetFiles();

foreach (FileInfo file in files)

Console.WriteLine(file.FullName);

輸出C盤子目錄信息:

 

在程序運行之前和之後的C盤目錄截圖,比較變化的情況,多了個atest目錄.

   

二. 文件讀寫

C#和java對於文件的操作的思路有點相似,都是采用管道技術和流操作—Stream來實現相應的功能.,開始操作文件的時候用到文件專用流:System.IO命名空間下的Filestream.,其構造函數有很多,現在先介紹一個很常用的方法: 

FileStream 構造函數 (String, FileMode); 

FileMode有:open,create,openOrcreate,createnew.append, Truncate等幾種模式.

下面先看一個例子:

FileInfo mynewfile = new FileInfo("C:\\myfile.txt");//

FileStream sf = new FileStream(mynewfile.ToString(), FileMode.Create);//構造函數,以創建模式打開目標文件,如果不存在就創建相應的文件.

byte[] dataArray = new byte[100000];//字節

new Random().NextBytes(dataArray);//創建隨機字節

for (int i = 0; i < dataArray.Length; i++)

{

sf.WriteByte(dataArray[i]);//將字節寫入文件理.

}

其他構造方法有:

 

我在這裡就不多介紹了,大家可以參考Msdn的文件.關於文件的讀寫還有個更好的StreamWriter/和StreamReader.下一節將繼續介紹.

FielStream類操作的是字節和字節數組,字符數據易於使用,但是有些操作,比如隨機文件訪問(訪問文件中間某點的數據),就必須由FileStream對象執行。

FielStream類維護內部文件指針,該指針指向文件中進行下一次讀寫操作的位置。

FileStream只能處理原始字節(raw byte),處理原始字節的功能使用FileStream類可以用於處理任何數據文件。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved