C# Directory類的操作
Directory類位于System.IO 命名空間。Directory類提供了在目錄和子目錄中進行創(chuàng)建移動和列舉操作的靜態(tài)方法。此外氓奈,你還可以訪問和操作各種各樣的目錄屬性痹籍,例如創(chuàng)建或最后一次修改時間以及Windows訪問控制列表等瞬欧。
System.IO.Directory類和System.DirectoryInfo類
主要提供關(guān)于目錄的各種操作贷屎,使用時需要引用System.IO命名空間。下面通過程序?qū)嵗齺斫榻B其主要屬性和方法艘虎。
百度經(jīng)驗:jingyan.baidu.com
方法/步驟
1.目錄創(chuàng)建方法:Directory.CreateDirectory
該方法聲明如下:
public static DirectoryInfo CreateDirectory(string path);
下面的代碼演示在c:\tempuploads文件夾下創(chuàng)建名為NewDirectory的目錄唉侄。
private void MakeDirectory()
{
Directory.CreateDirectory(@"c:\tempuploads\NewDirectoty");
}
2.目錄屬性設(shè)置方法:DirectoryInfo.Atttributes
下面的代碼設(shè)置c:\tempuploads\NewDirectory目錄為只讀、隱藏野建。與文件屬性相同属划,目錄屬性也是使用FileAttributes來進行設(shè)置的。
private void SetDirectory()
{
DirectoryInfo NewDirInfo = new DirectoryInfo(@"c:\tempuploads\NewDirectoty");
NewDirInfo.Atttributes = FileAttributes.ReadOnly|FileAttributes.Hidden;
}
3.目錄刪除方法:Directory.Delete
該方法聲明如下:
public static void Delete(string path,bool recursive);
下面的代碼可以將c:\tempuploads\BackUp目錄刪除候生。Delete方法的第二個參數(shù)為bool類型同眯,它可以決定是否刪除非空目錄。如果該參數(shù)值為true唯鸭,將刪除整個目錄须蜗,即使該目錄下有文件或 子目錄;若為false目溉,則僅當(dāng)目錄為空時才可刪除明肮。
private void DeleteDirectory()
{
Directory.Delete(@"c:\tempuploads\BackUp",true);
}
4.目錄移動方法:Directory.Move
該方法聲明如下:
public static void Move(string sourceDirName,string destDirName);
下面的代碼將目錄c:\tempuploads\NewDirectory移動到c:\tempuploads\BackUp。
private void MoveDirectory()
{
File.Move(@"c:\tempuploads\NewDirectory",@"c:\tempuploads\BackUp");
}
5.獲取當(dāng)前目錄下的所有子目錄方法:Directory.GetDirectories
該方法聲明如下:
public static string[] GetDirectories(string path);
下面的代碼讀出c:\tempuploads\目錄下的所有子目錄缭付,并將其存儲到字符串?dāng)?shù)組中柿估。
private void GetDirectory()
{
string [] Directorys;
Directorys = Directory. GetDirectories (@"c:\tempuploads");
}
6.獲取當(dāng)前目錄下的所有文件方法:Directory.GetFiles
該方法聲明如下:
public static string[] GetFiles(string path;);
下面的代碼讀出c:\tempuploads\目錄下的所有文件,并將其存儲到字符串?dāng)?shù)組中陷猫。
private void GetFile()
{
string [] Files;
Files = Directory. GetFiles (@"c:\tempuploads");
}
7.判斷目錄是否存在方法:Directory.Exist
該方法聲明如下:
public static bool Exists
(
string path;
);
下面的代碼判斷是否存在c:\tempuploads\NewDirectory目錄秫舌。若存在,先獲取該目錄下的子目錄和文件烙丛,然后其移動舅巷,最后將移動后的目錄刪除。若不存在河咽,則先創(chuàng)建該目錄,然后將目錄屬性設(shè)為只讀、隱藏
if(File.Exists(@"c:\tempuploads\NewDirectory")) //判斷目錄是否存在
{
GetDirectory(); //獲取子目錄
GetFile(); //獲取文件
MoveDirectory(); //移動目錄
DeleteDirectory(); //刪除目錄
}
else
{
MakeDirectory(); //生成目錄
SetDirectory(); //設(shè)置目錄屬性
}
注意:
路徑有3種方式赋元,當(dāng)前目錄下的相對路徑忘蟹、當(dāng)前工作盤的相對路徑、絕對路徑搁凸。以C:\Tmp\Book為例(假定當(dāng)前工作目錄為C:\Tmp)媚值。“Book”护糖,“\Tmp\Book”,“C:\Tmp\Book”都表示C:\Tmp\Book褥芒。
另外,在C#中 “\”是特殊字符,要表示它的話需要使用“\”锰扶。由于這種寫法不方便献酗,C#語言提供了@對其簡化。只要在字符串前加上@即可直接使用“\”坷牛。所以上面的路徑在C#中應(yīng)該表示為“Book”罕偎,@“\Tmp\Book”,@“C:\Tmp\Book”京闰。