開發(fā)重命名功能_第1頁
開發(fā)重命名功能_第2頁
開發(fā)重命名功能_第3頁
開發(fā)重命名功能_第4頁
開發(fā)重命名功能_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

文件重命名功能一、目錄21.技術(shù)原理2.效果圖預(yù)覽3.實現(xiàn)步驟4.功能驗證測試二、技術(shù)原理3(1)視圖層:顯示文件重命名的輸入框(2)控制層:接收視圖層的消息,向服務(wù)層發(fā)送文件和文件夾重命名參數(shù),并將服務(wù)層返回的結(jié)果發(fā)送到視圖層(3)服務(wù)層:調(diào)用swift服務(wù)對文件重命名,并將結(jié)果返回給控制層三、效果預(yù)覽圖4四、步驟實現(xiàn)5在cn/edu/sict/cloud/storage/service/SwiftStorageService.java添加如下代碼public

booleancreateDir(Stringusername,Stringpath,Stringname){SwiftDFSswiftdfs=newSwiftDFS();path+=name+"/";swiftdfs.createDir(username,path);return

true;}四、步驟實現(xiàn)6在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼private

voidrenamedirfile(StringrootPath,Stringpath,StringnewPath){this.copy(rootPath,rootPath,path,newPath);this.delete(rootPath,path);}四、步驟實現(xiàn)7在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼private

voidrenamecdirfile(Stringrootpath,Stringcpath,Stringpath,Stringnewpath){Stringstr1[]=newpath.split("/");Stringstr2[]=cpath.split("/");Stringstrpath="";for(int

i=0;i<str2.length;i++){if(i<str1.length){strpath+=str1[i]+"/";}else{strpath+=str2[i]+"/";}}this.copy(rootpath,rootpath,cpath,strpath);this.delete(rootpath,cpath);}四、步驟實現(xiàn)8在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼public

booleanrenameFile(Stringrpath,Stringname){Mapmappath=getSplitPath(rpath);Stringpath=mappath.get("path").toString();Stringrootpath=mappath.get("rootPath").toString();Stringnewpath="";Stringstr[]=path.split("/");for(int

i=0;i<str.length;i++){if(i==str.length-1){newpath+=name;}else{newpath+=str[i]+"/";}}this.copy(rootpath,rootpath,path,newpath);this.delete(rootpath,path);return

true;}四、步驟實現(xiàn)9在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼private

voidrenamecfilefile(StringrootPath,Stringcpath,Stringpath,StringnewPath){Stringstr1[]=newPath.split("/");Stringstr2[]=cpath.split("/");Stringstrpath="";for(int

i=0;i<str2.length;i++){if(i<str1.length){strpath+=str1[i]+"/";}else

if(i==str2.length-1){strpath+=str2[i];}else{strpath+=str2[i]+"/";}}this.copy(rootPath,rootPath,cpath,strpath);this.delete(rootPath,cpath);}四、步驟實現(xiàn)10在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼private

booleanisexist(Stringrootpath,Stringnewpath){List<?extendsSwiftObject>objs=this.list(rootpath);for(SwiftObjectswiftObject:objs){if(swiftObject.getName().equals(newpath)){return

false;}}return

true;}private

voidcopy(StringsrcContainer,StringdestContainer,StringsrcPath,StringdestPath){ObjectLocationsrcLocation=ObjectLocation.create(srcContainer,srcPath);ObjectLocationdestLocation=ObjectLocation.create(destContainer,destPath);os.objectStorage().objects().copy(srcLocation,destLocation);}private

voiddelete(StringrootPath,StringsrcPath){os.objectStorage().objects().delete(rootPath,srcPath);}四、步驟實現(xiàn)11在cn/edu/sict/cloud/storage/service/SwiftStorageService.java添加如下代碼public

booleanupdatefile(Stringusername,Stringpath,Stringname,boolean

isdir){SwiftDFSswiftdfs=newSwiftDFS();if(isdir){return

swiftdfs.renameDir(username+"/"+path,name);}else{return

swiftdfs.renameFile(username+"/"+path,name);}}四、步驟實現(xiàn)12在cn/edu/sict/cloud/storage/Web/StorageController.java添加如下代碼@RequestMapping("/updatefile")@ResponseBodypublicObjectupdatefile(HttpServletRequestrequest,HttpServletResponseresponse,Stringpath,Stringname,boolean

isDir){Useruser=getSessionUser(request);boolean

flag=storage.updatefile(user.getUsername(),path,name,isDir);return

newMessageBean(flag,flag?Constants.SUCCESS_7:(isDir?Constants.ERROR_4:Constants.ERROR_5));四、步驟實現(xiàn)13用戶選擇某一文件觸發(fā)單擊事件show():functionshow(){varobjTable=document.getElementById("tab");for(vari=0;i<objTable.rows.length;i++){varcheckbox=objTable.rows[i].childNodes[1].childNodes[0].childNodes[5];if(checkbox.checked==true){document.getElementById("delete").style.display="block";document.getElementById("download").style.display="block";document.getElementById("rename").style.display="block";document.getElementById("move").style.display="block";document.getElementById("copy").style.display="block";document.getElementById("selectColumn").style.display="block";break;}else{document.getElementById("delete").style.display="none";document.getElementById("download").style.display="none";document.getElementById("rename").style.display="none";document.getElementById("move").style.display="none";document.getElementById("copy").style.display="none";document.getElementById("selectColumn").style.display="none";}}}四、步驟實現(xiàn)14為重命名按鈕添加單擊事件rename(),并在js中添加如下代碼:functionrenanme(){varnum=0;varobjTable=document.getElementById("tab");for(vary=0;y<objTable.rows.length;y++){varcheckbox=objTable.rows[y].childNodes[1].childNodes[0].childNodes[5];if(checkbox.checked==true){if(num<1){varrenamebox=checkbox.parentNode.parentNode.parentNode.childNodes[3].childNodes[2];varrenametxt=checkbox.parentNode.parentNode.parentNode.childNodes[3].childNodes[0];renametxt.style.display="none";renamebox.style.display="block";num+=1;}else{alert('不能同時重命名兩個或兩個以上文件');location.reload();break;}}}}四、步驟實現(xiàn)15在js中添加如下代碼,獲取用戶輸入的文件名、文件路徑,判斷是否為文件夾functionsure(){varobjTable=document.getElementById("tab");for(vary=0;y<objTable.rows.length;y++){varcheckbox=objTable.rows[y].childNodes[1].childNodes[0].childNodes[5];if(checkbox.checked==true){varchangename=checkbox.parentNode.parentNode.parentNode.childN

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論