網絡硬盤的功能要求:
● 用戶登錄、注銷、用戶注冊
● 新建文件夾、上傳文件
● 查看文件屬性(包括:名稱,所在目錄,類型,大小,創建時間)
● 刪除文件
● 更換文件圖標(分為大圖標和小圖標)
● 通過搜索找到自己的文件並可以下載
進入時需有用戶名和密碼方能進入,有效的保護了文件的機密。
網絡硬盤的開發其實很簡單,主要使用了類庫Io,用來實現對文件的操作,采取了數據庫和物理路徑相對應映射的方式完成的,下面就來簡單說說其主要的幾個點:
首先是數據庫設計這塊,根據自己的需求設計出最適合的數據庫,我設計的數據庫分3個表,T_User,T_FileType,T_FileInfo
T_User
T_FileType
T_FileInfo
其次,我們知道網絡硬盤是滿足很多用戶的需求的,所以每個用戶都有屬於自己的空間,這就要求我們在頁面中要用登錄和注冊功能,這裡要提到的就是在注冊的時候我們就要相應位用戶分配空間,名稱最好不要直接用登錄名,可以采取映射的方式命名,如:用戶名是admin,那麼物理路徑的目錄名就可以為adminDir,adminFile等等,主要是從安全方面考慮的,注冊完用戶後就會在物理空間中顯示初始創建的幾個文件夾
下面就是要對文件操作的幾點了
對文件的操作首先要保證數據庫與物理路徑要保持一致,比如說增加一個文件,物理路徑添加了,數據庫也要有相應的增加記錄才可以,沒什麼大的問題,在這裡把下載的代碼貼出來:
復制代碼 代碼如下:
private void FileDownload(string FullFileName)//下載
{
FileInfo DownloadFile = new FileInfo(FullFileName); //設置要下載的文件
Response.Clear(); //清除緩沖區流中的所有內容輸出
Response.ClearHeaders(); //清除緩沖區流中的所有頭
Response.Buffer = false; //設置緩沖輸出為false
//設置輸出流的 HTTP MIME 類型為application/octet-stream
Response.ContentType = "application/octet-stream";
//將 HTTP 頭添加到輸出流
Response.AppendHeader("Content-Disposition",
"attachment;filename=" +
HttpUtility.UrlEncode(DownloadFile.FullName.Substring(FullFileName.LastIndexOf("\\") + 1),
System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
//將指定的文件直接寫入 HTTP 內容輸出流。
Response.WriteFile(DownloadFile.FullName);
Response.Flush(); //向客戶端發送當前所有緩沖的輸出
Response.End(); //將當前所有緩沖的輸出發送到客戶端
}
修改和轉移的邏輯很相似,修改目錄名稱的時候,就是新建一個目錄,然後通過子目錄移到新目錄下面,在數據庫中采用遞歸修改子目錄和文件的路徑名稱,修改文件就更簡單了,轉移也同樣如此...