服務(wù)熱線
153 8323 9821
在asp.net中經(jīng)遍歷文件夾需要利用文件對象GetFileSystemInfos() GetDirectories() FileSystemInfo()來實現(xiàn)我們的功能,下面我找了三個目錄遍歷的實例分享給大家。
方法一
代碼如下
private void forFileLength(DirectoryInfo directory)
{
DirectoryInfo[] directorys = directory.GetDirectories();
FileInfo[] files;
foreach (DirectoryInfo di in directorys)
{
forFileLength(di);
}
files = directory.GetFiles();
foreach(FileInfo file in files)
{
string temp = file.DirectoryName.ToString(); // 當(dāng)前路徑件
string name = file.Name; // name 文件名
}
}
方法二
(1)新建一個網(wǎng)站,其中默認(rèn)Web窗體為Default.aspx。
(2)在Default.aspx中添加一個TextBox控件、一個Button控件和一個Lable控件,分別用來輸入遍歷文件夾的路徑、開始遍歷文件夾并獲取文件數(shù)量、顯示遍歷文件的數(shù)量。
(3)單擊【獲取文件數(shù)量】按鈕來獲取指定文件夾下的文件數(shù)量,主要通過調(diào)用自定義方法GetAllFiles實現(xiàn)。在【獲取文件數(shù)量】按鈕的Click事件下添加代碼如下:
代碼如下 復(fù)制代碼
int j = 0;
protected void Button1_Click(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(TextBox1.Text.ToString());
Label1.Text = GetAllFiles(dir).ToString();
}
GetAllFiles方法為自定義方法,實現(xiàn)遍歷整個文件夾文件的方法。代碼如下:
代碼如下
public int GetAllFiles(DirectoryInfo dir)
{
FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();
foreach (FileSystemInfo i in fileinfo)
{
if (i is DirectoryInfo)
{
GetAllFiles((DirectoryInfo)i);
}
else
{
j++;
}
}
return j;
}
說明:首先要導(dǎo)入命名空間System.IO,GetAllFiles方法可以識別文件夾中的隱藏文件,遍歷出來的文件數(shù)量是文件夾中包括隱藏文件在內(nèi)的所有文件的數(shù)量
方法三
代碼如下 復(fù)制代碼
protected void Page_Load(object sender, EventArgs e)
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Server.MapPath(“~/”));
TreeView treeView1 = new TreeView();
TreeNode nodeMain = OutPutNodes(dir, null);
treeView1.Nodes.Add(nodeMain);
this.form1.Controls.Add(treeView1);
}
private TreeNode OutPutNodes(System.IO.DirectoryInfo dir, TreeNode parentNode)
{
if (dir == null)
return null;
TreeNode dirNode = new TreeNode(dir.Name);
System.IO.DirectoryInfo[] subDirs = dir.GetDirectories();
for (int i = 0; i < subDirs.Length; i++)
{
OutPutNodes(subDirs[i], dirNode);
}
System.IO.FileInfo[] files = dir.GetFiles();
for (int i = 0; i < files.Length; i++)
{
dirNode.ChildNodes.Add(new TreeNode(files[i].Name));
}
if (parentNode == null)
{
return dirNode;
}
else
{
parentNode.ChildNodes.Add(dirNode);
return parentNode;
}
}
總結(jié)
歷一個文件夾中的文件,需要用到DirectoryInfo類中的一個重要的方法GetFileSystemInfos(),此方法返回指定的是與搜索條件相匹配的文件和子目錄的強類型 FileSystemInfo對象的數(shù)組。