国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET設計網絡硬盤之文件夾實現

2024-07-10 12:55:16
字體:
來源:轉載
供稿:網友

在介紹“網絡硬盤”概念時已經提到,每個用戶在“網絡硬盤”上都有自己的一塊空間。在下面程序設計中是這樣處理的:為用戶提供一個固定的文件夾,在這個文件夾下用戶可以自己增加/刪除新的文件夾或文件。如圖1所示,首次打開網頁時將列出該文件夾下的所有內容(包括文件和文件夾)。如果想進入下一級文件夾,可以選中該文件夾,單擊“打開”按鈕進入。下面將就查看文件夾內容功能的實現分步驟進行說明。

 
  1. 頁面加載

  由于程序所提供的用戶目錄是固定的,如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([email protected]"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中添加“返回上級目錄”選項。

  2. 多級目錄查看

  通過上一部分列出的兩段代碼,就可以完成在頁面加載時列出頂級目錄下的所有內容。當然列出頂級目錄下的內容還是不夠的,和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()方法的參數。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杂多县| 江川县| 石城县| 苏尼特右旗| 萨嘎县| 旬阳县| 江陵县| 长治县| 晴隆县| 武强县| 称多县| 武清区| 彭泽县| 天镇县| 商丘市| 旺苍县| 孟村| 永丰县| 茶陵县| 兴业县| 深圳市| 亳州市| 昌江| 峡江县| 江口县| 永济市| 苍山县| 喜德县| 搜索| 平遥县| 循化| 砀山县| 监利县| 红安县| 阿尔山市| 海林市| 武隆县| 翁牛特旗| 伊宁市| 介休市| 万安县|