程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> C#遍歷驅動器,目錄,文件

C#遍歷驅動器,目錄,文件

編輯:關於.NET
這兒所說的並不是對文件進行讀寫,只是針對於獲取文件和目錄等。

主要分為對驅動器,目錄和文件三大類。

對驅動器需要用到DriveInfo類來實現

對目錄需要用到DirectoryInfo類來實現

對文件需要用到FileInfo類來實現。

其中 FileSystemInfo類既可以訪問文件,也可以訪問目錄。

具體看下面的代碼。

首先是訪問驅動器:

//演示文件操作

/// <summary>
/// 定義一個操作類
/// </summary>
class FileClass
{
/// <summary>
/// 打印驅動器信息
/// </summary>
public void Drive()
{

try
{
//獲取電腦上的所有驅動器
DriveInfo[] drive = DriveInfo.GetDrives();
Console.WriteLine("磁盤卷標\t驅動器名\t類型\t格式\t總共空間\t可用空間");
foreach (var VARIABLE in drive)
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", VARIABLE.VolumeLabel, VARIABLE.Name,
VARIABLE.DriveType, VARIABLE.DriveFormat, VARIABLE.TotalSize, VARIABLE.AvailableFreeSpace);

}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.ReadKey();
}
}
class AAA
{
static void Main(string[] args)
{
FileClass Fc=new FileClass();
Fc.Drive();
// DirectoryInfo dtInfo=new DirectoryInfo("D://學習");
// Fc.DirectoryFun(dtInfo);
// Fc.FileFun(dtInfo);
// Fc.FileAndDirectoryFun(dtInfo);
// Fc.recursionInfo(dtInfo);
// Fc.RecurfileExe(dtInfo);
// Console.ReadKey();
}
}
這樣就可以訪問驅動器信息

下面來訪問目錄信息,首先我把我的目錄文件截圖給大家看下,總的文件是“學習” ,下面有5個目錄和一個PDF文件,幾個目錄下還有文件和子目錄。

下面來演示如何訪問目錄下的目錄 代碼如下。

/// <summary>
/// 目錄下的文件夾的遍歷 只能識別目錄(文件夾) 不能識別文件。
/// </summary>
/// <param name="DtInfo"></param>
public void DirectoryFun(DirectoryInfo DtInfo)
{
//獲取子目錄
DirectoryInfo[] Arry = DtInfo.GetDirectories();
Console.WriteLine(DtInfo.Name+"下的子目錄有:");
foreach (var VARIABLE in Arry)
{
Console.WriteLine(VARIABLE.Name);
}
Console.ReadKey();
}
class AAA
{
static void Main(string[] args)
{
FileClass Fc=new FileClass();
// Fc.Drive();
DirectoryInfo dtInfo=new DirectoryInfo("D://學習");
Fc.DirectoryFun(dtInfo);
// Fc.FileFun(dtInfo);
// Fc.FileAndDirectoryFun(dtInfo);
// Fc.recursionInfo(dtInfo);
// Fc.RecurfileExe(dtInfo);
// Console.ReadKey();
}
}



下面演示如何訪問目錄下的文件 代碼如下

/// <summary>
/// 目錄下文件的遍歷
/// </summary>
/// <param name="dtInfo"></param>
public void FileFun(DirectoryInfo dtInfo)
{
//獲取文件
FileInfo []fileInfo = dtInfo.GetFiles();
Console.WriteLine(dtInfo.Name+"下的文件有:");
foreach (var VARIABLE in fileInfo)
{
Console.WriteLine(VARIABLE.Name);
}
Console.ReadKey();
}
class AAA
{
static void Main(string[] args)
{
FileClass Fc=new FileClass();
// Fc.Drive();
DirectoryInfo dtInfo=new DirectoryInfo("D://學習");
// Fc.DirectoryFun(dtInfo);
Fc.FileFun(dtInfo);
// Fc.FileAndDirectoryFun(dtInfo);
// Fc.recursionInfo(dtInfo);
// Fc.RecurfileExe(dtInfo);
// Console.ReadKey();
}
}
下面演示訪問目錄下的目錄和文件,主要依靠FileSystemInfo類 代碼如下

/// <summary>
/// 目錄下的文件和子目錄的遍歷
/// </summary>
/// <param name="dtInfo"></param>
public void FileAndDirectoryFun(DirectoryInfo dtInfo)
{
//FileSystemInfo既可以訪問文件 也可以訪問目錄
FileSystemInfo[] fileSystemInfo = dtInfo.GetFileSystemInfos();
Console.WriteLine(dtInfo.Name+"下的文件和目錄有:");
foreach (var VARIABLE in fileSystemInfo)
{
Console.WriteLine(VARIABLE.Name);
}
Console.ReadLine();
}
class AAA
{
static void Main(string[] args)
{
FileClass Fc=new FileClass();
// Fc.Drive();
DirectoryInfo dtInfo=new DirectoryInfo("D://學習");
// Fc.DirectoryFun(dtInfo);
// Fc.FileFun(dtInfo);
Fc.FileAndDirectoryFun(dtInfo);
// Fc.recursionInfo(dtInfo);
// Fc.RecurfileExe(dtInfo);
// Console.ReadKey();
}
}


下面演示遞歸訪問目錄下的所有目錄和文件,包括子目錄下的子目錄和文件,代碼如下。

/// <summary>
/// 遞歸訪問一個文件夾下所包括的所有文件和目錄 及子目錄中的文件
/// </summary>
/// <param name="dtInfo"></param>
public void recursionInfo(DirectoryInfo dtInfo)
{
//獲取子目錄和文件
FileSystemInfo[] fileSystemInfo = dtInfo.GetFileSystemInfos();
foreach (var VARIABLE in fileSystemInfo)
{
//如果是文件 則直接打印
if (VARIABLE is FileInfo
)
{
Console.WriteLine(VARIABLE.Name);
}
//如果是目錄 則先打印目錄名 然後訪問該目錄下的文件和目錄 遞歸
else
{
//則先打印目錄名
Console.WriteLine(VARIABLE.Name);
//然後訪問該目錄下的文件和目錄 遞歸
recursionInfo((DirectoryInfo)VARIABLE);

}
}

}
class AAA
{
static void Main(string[] args)
{
FileClass Fc=new FileClass();
// Fc.Drive();
DirectoryInfo dtInfo=new DirectoryInfo("D://學習");
// Fc.DirectoryFun(dtInfo);
// Fc.FileFun(dtInfo);
// Fc.FileAndDirectoryFun(dtInfo);
Fc.recursionInfo(dtInfo);
// Fc.RecurfileExe(dtInfo);
// Console.ReadKey();
}
}
下面演示如何訪問指定目錄下所有指定類型的文件,仍然是遞歸 這就需要用到Extension屬性 這代表文件的擴展名。代碼如下

/// <summary>
/// 遞歸訪問一個目錄下的所有exe文件 需要用到Extension(文件擴展名)
/// </summary>
/// <param name="dtInfo"></param>
public void RecurfileExe(DirectoryInfo dtInfo)
{
//獲取所有目錄和文件
FileSystemInfo[] fileSystemInfos= dtInfo.GetFileSystemInfos();
foreach (var VARIABLE in fileSystemInfos)
{
//如果是exe文件 則打印
if (VARIABLE.Extension == ".exe")
{
Console.WriteLine(VARIABLE.Name);
}
//如果是目錄 則遞歸
else if (VARIABLE is DirectoryInfo)
{
RecurfileExe((DirectoryInfo)VARIABLE);
}

}
}
class AAA
{
static void Main(string[] args)
{
FileClass Fc=new FileClass();
// Fc.Drive();
DirectoryInfo dtInfo=new DirectoryInfo("D://學習");
// Fc.DirectoryFun(dtInfo);
// Fc.FileFun(dtInfo);
// Fc.FileAndDirectoryFun(dtInfo);
// Fc.recursionInfo(dtInfo);
Fc.RecurfileExe(dtInfo);
Console.ReadKey();
}
}
以上就是關於驅動器,目錄和文件的訪問,比較簡單,希望對大家有幫助。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved