![]() 圖1 用戶主界面 |
1. 頁面加載
由于程序所提供的用戶目錄是固定的,如c:/UserDir,而且要求在頁面加載后顯示該文件夾所有內(nèi)容,所以需要在Page_Load中進(jìn)行相應(yīng)操作:首先要判斷該文件夾是否存在,如果不存在需要先創(chuàng)建它;然后再列出該文件夾下的內(nèi)容,其代碼實(shí)現(xiàn)如下:
private void Page_Load(object sender, System.EventArgs e) { // 在此處放置用戶代碼以初始化頁面 if(Page.IsPostBack==false) { CurrentPath= @"c:/UserDir/"; //設(shè)置當(dāng)前目錄 if(Directory.Exists(@"c:/UserDir/")==false) //若該目錄不存在,創(chuàng)建該目錄 Directory.CreateDirectory(@"c:/UserDir/"); LoadDir(CurrentPath); //初始化裝入目錄 } } |
LoadDir(string FullPath)方法用來列出該文件夾下的所有內(nèi)容,其代碼如下:
private void LoadDir(string FullPath) { CurrentPath=FullPath; ArrayList values = new ArrayList(); string [] MyFiles,MyDirs; MyFiles = Directory.GetFiles(FullPath); //得到該目錄下所有文件 if(CurrentPath!=@"c:/UserDir") //若不是頂級(jí)目錄,增加“返回上級(jí)目錄”選項(xiàng) { values.Add("返回上級(jí)目錄"); } values.AddRange(MyFiles); //加入文件 MyDirs= Directory.GetDirectories(FullPath); //得到該目錄下所有目錄 values.AddRange(MyDirs); //加入目錄 FileList.DataSource=values; //設(shè)置數(shù)據(jù)源 FileList.DataBind(); //綁定數(shù)據(jù) } |
首先要定義一個(gè)ArrayList數(shù)組對(duì)象values,用以存放頂級(jí)目錄下的所有內(nèi)容(包括文件夾名和文件名)。Directory.GetFiles()方法返回頂級(jí)目錄下的所有文件名,其返回類型為一個(gè)string數(shù)組,故需要定義一個(gè)string類對(duì)象MyFiles來保存返回的文件名;Directory.GetDirectories()返回頂級(jí)目錄下的所有文件夾名稱,同樣定義一個(gè)string數(shù)組對(duì)象MyDirs來保存它們。完成這些后就可以把MyFiles和MyDirs數(shù)組添加進(jìn)values對(duì)象了。最后要做的只是為L(zhǎng)istBox控件對(duì)象FileList添加數(shù)據(jù)源和綁定數(shù)據(jù)。有一點(diǎn)需要說明:如果當(dāng)前目錄不是頂級(jí)目錄,則需要能返回到上級(jí)目錄,為此需要在FileList中添加“返回上級(jí)目錄”選項(xiàng)。
2. 多級(jí)目錄查看
通過上一部分列出的兩段代碼,就可以完成在頁面加載時(shí)列出頂級(jí)目錄下的所有內(nèi)容。當(dāng)然列出頂級(jí)目錄下的內(nèi)容還是不夠的,和Windows操作系統(tǒng)類似,網(wǎng)絡(luò)硬盤中文件夾目錄也是嵌套的,存在二級(jí)或者多級(jí)文件夾目錄。為此要進(jìn)行一些相應(yīng)的處理,使得用戶可以查看多級(jí)文件夾目錄內(nèi)容。前面界面設(shè)計(jì)中提供了一個(gè)“打開”按鈕,用戶選擇相應(yīng)的文件夾后,單擊該按鈕就可以查看該文件夾下的內(nèi)容。
下面就為“打開”按鈕添加代碼。在“設(shè)計(jì)”面板中雙擊該按鈕,系統(tǒng)就會(huì)自動(dòng)為其添加事件,其代碼內(nèi)容如下:
private void btnOpen_Click(object sender, System.EventArgs e) { if(FileList.SelectedItem.Text=="返回上級(jí)目錄") //返回上級(jí)目錄 { string ParentPath=Directory.GetParent(CurrentPath).ToString(); LoadDir(ParentPath); return; } else //打開目錄 { LoadDir(FileList.SelectedItem.Text); } } |
程序首先判斷用戶選中的是不是“返回上級(jí)目錄”。如果是的話,則要先通過Directory.GetParent()方法返回上級(jí)文件夾名稱,然后再調(diào)用LoadDir()方法來顯示該目錄下的內(nèi)容;如果用戶選中的不是“返回上級(jí)目錄”而是一個(gè)文件夾名稱,則可以直接調(diào)用LoadDir()方法,F(xiàn)ileList.SelectedItem.Text為選中的文件夾名,用來作為L(zhǎng)oadDir()方法的參數(shù)。
AspNet技術(shù):ASP.NET設(shè)計(jì)網(wǎng)絡(luò)硬盤之文件夾實(shí)現(xiàn),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。