ASP.NET設計網絡硬盤之文件夾實現(xiàn)
更新時間:2006年09月28日 00:00:00 作者:
在介紹“網絡硬盤”概念時已經提到,每個用戶在“網絡硬盤”上都有自己的一塊空間。在下面程序設計中是這樣處理的:為用戶提供一個固定的文件夾,在這個文件夾下用戶可以自己增加/刪除新的文件夾或文件。如圖1所示,首次打開網頁時將列出該文件夾下的所有內容(包括文件和文件夾)。如果想進入下一級文件夾,可以選中該文件夾,單擊“打開”按鈕進入。下面將就查看文件夾內容功能的實現(xiàn)分步驟進行說明。
1. 頁面加載
由于程序所提供的用戶目錄是固定的,如c:\UserDir,而且要求在頁面加載后顯示該文件夾所有內容,所以需要在Page_Load中進行相應操作:首先要判斷該文件夾是否存在,如果不存在需要先創(chuàng)建它;然后再列出該文件夾下的內容,其代碼實現(xiàn)如下:
LoadDir(string FullPath)方法用來列出該文件夾下的所有內容,其代碼如下:
首先要定義一個ArrayList數(shù)組對象values,用以存放頂級目錄下的所有內容(包括文件夾名和文件名)。Directory.GetFiles()方法返回頂級目錄下的所有文件名,其返回類型為一個string數(shù)組,故需要定義一個string類對象MyFiles來保存返回的文件名;Directory.GetDirectories()返回頂級目錄下的所有文件夾名稱,同樣定義一個string數(shù)組對象MyDirs來保存它們。完成這些后就可以把MyFiles和MyDirs數(shù)組添加進values對象了。最后要做的只是為ListBox控件對象FileList添加數(shù)據(jù)源和綁定數(shù)據(jù)。有一點需要說明:如果當前目錄不是頂級目錄,則需要能返回到上級目錄,為此需要在FileList中添加“返回上級目錄”選項。
2. 多級目錄查看
通過上一部分列出的兩段代碼,就可以完成在頁面加載時列出頂級目錄下的所有內容。當然列出頂級目錄下的內容還是不夠的,和Windows操作系統(tǒng)類似,網絡硬盤中文件夾目錄也是嵌套的,存在二級或者多級文件夾目錄。為此要進行一些相應的處理,使得用戶可以查看多級文件夾目錄內容。前面界面設計中提供了一個“打開”按鈕,用戶選擇相應的文件夾后,單擊該按鈕就可以查看該文件夾下的內容。
下面就為“打開”按鈕添加代碼。在“設計”面板中雙擊該按鈕,系統(tǒng)就會自動為其添加事件,其代碼內容如下:
程序首先判斷用戶選中的是不是“返回上級目錄”。如果是的話,則要先通過Directory.GetParent()方法返回上級文件夾名稱,然后再調用LoadDir()方法來顯示該目錄下的內容;如果用戶選中的不是“返回上級目錄”而是一個文件夾名稱,則可以直接調用LoadDir()方法,F(xiàn)ileList.SelectedItem.Text為選中的文件夾名,用來作為LoadDir()方法的參數(shù)。
![]() 圖1 用戶主界面 |
1. 頁面加載
由于程序所提供的用戶目錄是固定的,如c:\UserDir,而且要求在頁面加載后顯示該文件夾所有內容,所以需要在Page_Load中進行相應操作:首先要判斷該文件夾是否存在,如果不存在需要先創(chuàng)建它;然后再列出該文件夾下的內容,其代碼實現(xiàn)如下:
private void Page_Load(object sender, System.EventArgs e) { // 在此處放置用戶代碼以初始化頁面 if(Page.IsPostBack==false) { CurrentPath= @"c:\UserDir\"; //設置當前目錄 if(Directory.Exists(@"c:\UserDir\")==false) //若該目錄不存在,創(chuàng)建該目錄 Directory.CreateDirectory(@"c:\UserDir\"); LoadDir(CurrentPath); //初始化裝入目錄 } } |
LoadDir(string FullPath)方法用來列出該文件夾下的所有內容,其代碼如下:
private void LoadDir(string FullPath) { CurrentPath=FullPath; ArrayList values = new ArrayList(); string [] MyFiles,MyDirs; MyFiles = Directory.GetFiles(FullPath); //得到該目錄下所有文件 if(CurrentPath!=@"c:\UserDir") //若不是頂級目錄,增加“返回上級目錄”選項 { values.Add("返回上級目錄"); } values.AddRange(MyFiles); //加入文件 MyDirs= Directory.GetDirectories(FullPath); //得到該目錄下所有目錄 values.AddRange(MyDirs); //加入目錄 FileList.DataSource=values; //設置數(shù)據(jù)源 FileList.DataBind(); //綁定數(shù)據(jù) } |
首先要定義一個ArrayList數(shù)組對象values,用以存放頂級目錄下的所有內容(包括文件夾名和文件名)。Directory.GetFiles()方法返回頂級目錄下的所有文件名,其返回類型為一個string數(shù)組,故需要定義一個string類對象MyFiles來保存返回的文件名;Directory.GetDirectories()返回頂級目錄下的所有文件夾名稱,同樣定義一個string數(shù)組對象MyDirs來保存它們。完成這些后就可以把MyFiles和MyDirs數(shù)組添加進values對象了。最后要做的只是為ListBox控件對象FileList添加數(shù)據(jù)源和綁定數(shù)據(jù)。有一點需要說明:如果當前目錄不是頂級目錄,則需要能返回到上級目錄,為此需要在FileList中添加“返回上級目錄”選項。
2. 多級目錄查看
通過上一部分列出的兩段代碼,就可以完成在頁面加載時列出頂級目錄下的所有內容。當然列出頂級目錄下的內容還是不夠的,和Windows操作系統(tǒng)類似,網絡硬盤中文件夾目錄也是嵌套的,存在二級或者多級文件夾目錄。為此要進行一些相應的處理,使得用戶可以查看多級文件夾目錄內容。前面界面設計中提供了一個“打開”按鈕,用戶選擇相應的文件夾后,單擊該按鈕就可以查看該文件夾下的內容。
下面就為“打開”按鈕添加代碼。在“設計”面板中雙擊該按鈕,系統(tǒng)就會自動為其添加事件,其代碼內容如下:
private void btnOpen_Click(object sender, System.EventArgs e) { if(FileList.SelectedItem.Text=="返回上級目錄") //返回上級目錄 { string ParentPath=Directory.GetParent(CurrentPath).ToString(); LoadDir(ParentPath); return; } else //打開目錄 { LoadDir(FileList.SelectedItem.Text); } } |
程序首先判斷用戶選中的是不是“返回上級目錄”。如果是的話,則要先通過Directory.GetParent()方法返回上級文件夾名稱,然后再調用LoadDir()方法來顯示該目錄下的內容;如果用戶選中的不是“返回上級目錄”而是一個文件夾名稱,則可以直接調用LoadDir()方法,F(xiàn)ileList.SelectedItem.Text為選中的文件夾名,用來作為LoadDir()方法的參數(shù)。
相關文章
DataSet、DataTable、DataRow區(qū)別詳解
這篇文章主要介紹了DataSet、DataTable、DataRow區(qū)別詳解,需要的朋友可以參考下2014-02-02詳解ASP.NET Core Web Api之JWT刷新Token
這篇文章主要介紹了詳解ASP.NET Core Web Api之JWT刷新Token,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11asp.net中SqlCacheDependency緩存技術概述
這篇文章主要介紹了asp.net中SqlCacheDependency緩存技術概述,是大型web程序設計中常用的技術,本文對此進行了較為詳細的描述,需要的朋友可以參考下2014-08-08ASP.NET Core 數(shù)據(jù)保護(Data Protection)中篇
這篇文章主要為大家再一次介紹了ASP.NET Core 數(shù)據(jù)保護(Data Protection),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09CheckBox控件默認選中,提交時永遠獲得選中狀態(tài)的實現(xiàn)代碼
下面小編就為大家?guī)硪黄狢heckBox控件默認選中,提交時永遠獲得選中狀態(tài)的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05Asp.net利用JQuery彈出層加載數(shù)據(jù)代碼
最近看QQ空間里面的投票功能很使用。點擊一個鏈接就彈出一個層,然后再加載一些投票信息,旁邊的區(qū)域變成灰色不可用狀態(tài)。其實這不算什么高深的技術,只要在ASP.NET中利用JQuery結合一般處理程序ASHX即可搞定了。2009-11-11