熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

網絡硬盤之文件夾實現

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

  


  
用戶主界面


   頁面加載

  由於程序所提供的用戶目錄是固定的如c:\UserDir而且要求在頁面加載後顯示該文件夾所有內容所以需要在Page_Load中進行相應操作首先要判斷該文件夾是否存在如果不存在需要先創建它然後再列出該文件夾下的內容其代碼實現如下

  private void Page_Load(object sender SystemEventArgs e)

  {

  // 在此處放置用戶代碼以初始化頁面

  if(PageIsPostBack==false)

  {

  CurrentPath= @c:\UserDir\; //設置當前目錄

  if(DirectoryExists(@c:\UserDir\)==false) //若該目錄不存在創建該目錄

  DirectoryCreateDirectory(@c:\UserDir\);

  LoadDir(CurrentPath); //初始化裝入目錄

  }

  }

  LoadDir(string FullPath)方法用來列出該文件夾下的所有內容其代碼如下

  private void LoadDir(string FullPath)

  {

  CurrentPath=FullPath;

  ArrayList values = new ArrayList();

  string [] MyFilesMyDirs;

  MyFiles = DirectoryGetFiles(FullPath); //得到該目錄下所有文件

  if(CurrentPath!=@c:\UserDir) //若不是頂級目錄增加返回上級目錄選項 {

  valuesAdd(返回上級目錄);

  }

  valuesAddRange(MyFiles); //加入文件

  MyDirs= DirectoryGetDirectories(FullPath); //得到該目錄下所有目錄

  valuesAddRange(MyDirs); //加入目錄

  FileListDataSource=values; //設置數據源

  FileListDataBind(); //綁定數據

  }

  首先要定義一個ArrayList數組對象values用以存放頂級目錄下的所有內容(包括文件夾名和文件名)DirectoryGetFiles()方法返回頂級目錄下的所有文件名其返回類型為一個string數組故需要定義一個string類對象MyFiles來保存返回的文件名DirectoryGetDirectories()返回頂級目錄下的所有文件夾名稱同樣定義一個string數組對象MyDirs來保存它們完成這些後就可以把MyFiles和MyDirs數組添加進values對象了最後要做的只是為ListBox控件對象FileList添加數據源和綁定數據有一點需要說明如果當前目錄不是頂級目錄則需要能返回到上級目錄為此需要在FileList中添加返回上級目錄選項

   多級目錄查看

  通過上一部分列出的兩段代碼就可以完成在頁面加載時列出頂級目錄下的所有內容當然列出頂級目錄下的內容還是不夠的和Windows操作系統類似網絡硬盤中文件夾目錄也是嵌套的存在二級或者多級文件夾目錄為此要進行一些相應的處理使得用戶可以查看多級文件夾目錄內容前面界面設計中提供了一個打開按鈕用戶選擇相應的文件夾後單擊該按鈕就可以查看該文件夾下的內容

  下面就為打開按鈕添加代碼設計面板中雙擊該按鈕系統就會自動為其添加事件其代碼內容如下

  private void btnOpen_Click(object sender SystemEventArgs e)

  {

  if(FileListSelectedItemText==返回上級目錄) //返回上級目錄

  {

  string ParentPath=DirectoryGetParent(CurrentPath)ToString();

  LoadDir(ParentPath);

  return;

  }

  else //打開目錄

  {

  LoadDir(FileListSelectedItemText);

  }

  }

  程序首先判斷用戶選中的是不是返回上級目錄如果是的話則要先通過DirectoryGetParent()方法返回上級文件夾名稱然後再調用LoadDir()方法來顯示該目錄下的內容如果用戶選中的不是返回上級目錄而是一個文件夾名稱則可以直接調用LoadDir()方法FileListSelectedItemText為選中的文件夾名用來作為LoadDir()方法的參數
From:http://tw.wingwit.com/Article/program/net/201311/11734.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.