在介紹
網絡硬盤
概念時已經提到
每個用戶在
網絡硬盤
上都有自己的一塊空間
在下面程序設計中是這樣處理的
為用戶提供一個固定的文件夾
在這個文件夾下用戶可以自己增加/刪除新的文件夾或文件
如圖
所示
首次打開網頁時將列出該文件夾下的所有內容(包括文件和文件夾)
如果想進入下一級文件夾
可以選中該文件夾
單擊
打開
按鈕進入
下面將就查看文件夾內容功能的實現分步驟進行說明
圖 用戶主界面 頁面加載 由於程序所提供的用戶目錄是固定的
如c:\UserDir
而且要求在頁面加載後顯示該文件夾所有內容
所以需要在Page_Load中進行相應操作
首先要判斷該文件夾是否存在
如果不存在需要先創建它
然後再列出該文件夾下的內容
其代碼實現如下
private void Page_Load(object sender
System
EventArgs e)
{
// 在此處放置用戶代碼以初始化頁面
if(Page
IsPostBack==false)
{
CurrentPath= @
c:\UserDir\
; //設置當前目錄
if(Directory
Exists(@
c:\UserDir\
)==false) //若該目錄不存在
創建該目錄
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; //設置數據源
FileList
DataBind(); //綁定數據
}
首先要定義一個ArrayList數組對象values
用以存放頂級目錄下的所有內容(包括文件夾名和文件名)
Directory
GetFiles()方法返回頂級目錄下的所有文件名
其返回類型為一個string數組
故需要定義一個string類對象MyFiles來保存返回的文件名
Directory
GetDirectories()返回頂級目錄下的所有文件夾名稱
同樣定義一個string數組對象MyDirs來保存它們
完成這些後就可以把MyFiles和MyDirs數組添加進values對象了
最後要做的只是為ListBox控件對象FileList添加數據源和綁定數據
有一點需要說明
如果當前目錄不是頂級目錄
則需要能返回到上級目錄
為此需要在FileList中添加
返回上級目錄
選項
多級目錄查看 通過上一部分列出的兩段代碼
就可以完成在頁面加載時列出頂級目錄下的所有內容
當然列出頂級目錄下的內容還是不夠的
和Windows操作系統類似
網絡硬盤中文件夾目錄也是嵌套的
存在二級或者多級文件夾目錄
為此要進行一些相應的處理
使得用戶可以查看多級文件夾目錄內容
前面界面設計中提供了一個
打開
按鈕
用戶選擇相應的文件夾後
單擊該按鈕就可以查看該文件夾下的內容
下面就為
打開
按鈕添加代碼
在
設計
面板中雙擊該按鈕
系統就會自動為其添加事件
其代碼內容如下
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()方法
FileList
SelectedItem
Text為選中的文件夾名
用來作為LoadDir()方法的參數
From:http://tw.wingwit.com/Article/program/net/201311/11734.html