版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
云存儲文件重命名功能目錄技術(shù)原理實(shí)現(xiàn)步驟功能描述功能測試2技術(shù)原理3(1)視圖層:顯示文件重命名的輸入框(2)控制層:接收視圖層的消息,向服務(wù)層發(fā)送文件和文件夾重命名參數(shù),并將服務(wù)層返回的結(jié)果發(fā)送到視圖層(3)服務(wù)層:調(diào)用swift服務(wù)對文件重命名,并將結(jié)果返回給控制層功能描述4實(shí)現(xiàn)步驟5在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);}}實(shí)現(xiàn)步驟6在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼public
booleanrenameDir(Stringrpath,Stringfilename){Mapmappath=getSplitPath(rpath);Stringpath=mappath.get("path").toString();Stringrootpath=mappath.get("rootPath").toString();if(!path.contains("/")){path="/"+mappath.get("path").toString();}Stringtemppath=UtilTools.replaceStr(path);Stringendstr=temppath.substring(0,temppath.length()-1);int
index=endstr.lastIndexOf("/");Stringnewpath=null;if(index!=-1){newpath=temppath.substring(0,index+1)+filename+"/";實(shí)現(xiàn)步驟7在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼}else{newpath=filename+"/";}boolean
flag=isexist(rootpath,newpath);if(flag){rename(rootpath,path,path,newpath);renamedirfile(rootpath,path,newpath);return
flag;}return
flag;}實(shí)現(xiàn)步驟8在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼private
voidrenamedirfile(StringrootPath,Stringpath,StringnewPath){this.copy(rootPath,rootPath,path,newPath);this.delete(rootPath,path);}實(shí)現(xiàn)步驟9在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);}實(shí)現(xiàn)步驟10在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]+"/";}}實(shí)現(xiàn)步驟11在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼this.copy(rootpath,rootpath,path,newpath);this.delete(rootpath,path);return
true;}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];實(shí)現(xiàn)步驟12在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼}else{strpath+=str2[i]+"/";}}this.copy(rootPath,rootPath,cpath,strpath);this.delete(rootPath,cpath);}實(shí)現(xiàn)步驟13在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;}實(shí)現(xiàn)步驟14在cn/edu/sict/cloud/storage/sh/SwiftDFS.java添加如下代碼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);}實(shí)現(xiàn)步驟15在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));}實(shí)現(xiàn)步驟16用戶選擇某一文件觸發(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;實(shí)現(xiàn)步驟17用戶選擇某一文件觸發(fā)單擊事件show():}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";}}}實(shí)現(xiàn)步驟18為重命名按鈕添加單擊事件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=實(shí)現(xiàn)步驟19為重命名按鈕添加單擊事件rename(),并在js中添加如下代碼:checkbox.parentNode.parentNode.parentNode.childNodes[3].childNodes[0];renametxt.style.display="none";renamebox.style.display="block";num+=1;}else{alert('不能同時(shí)重命名兩個(gè)或兩個(gè)以上文件');location.reload();break;}}}}實(shí)現(xiàn)步驟20在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=c
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省C2證(土建安全員)-江蘇省安全員《C2證》押題密卷1
- 教科版八年級物理下冊《9.1壓強(qiáng)》同步測試題含答案
- 江西省吉安市青原區(qū)2024年中考數(shù)學(xué)一模試卷附答案
- 科學(xué)育種方法優(yōu)化作物基因
- 電梯故障聲音信號識別系統(tǒng)
- 高一化學(xué)二生活中兩種常見的有機(jī)物-乙醇教學(xué)設(shè)計(jì)
- 2024高中地理第2章區(qū)域生態(tài)環(huán)境建設(shè)第2節(jié)第1課時(shí)熱帶雨林的全球環(huán)境效應(yīng)和脆弱性精練含解析新人教版必修3
- 2024高中物理第三章磁場課時(shí)23幾種常見的磁場訓(xùn)練含解析新人教版選修3-1
- 2024高中語文第7單元韓非子蚜第2課子圉見孔子于商太宰練習(xí)含解析新人教版選修先秦諸子蚜
- 2024高考化學(xué)一輪復(fù)習(xí)課練30物質(zhì)的檢驗(yàn)分離和提純含解析
- JJG 1149-2022電動汽車非車載充電機(jī)(試行)
- 工程款支付報(bào)審表
- 《項(xiàng)目施工組織設(shè)計(jì)開題報(bào)告(含提綱)3000字》
- ICU常見藥物課件
- CNAS實(shí)驗(yàn)室評審不符合項(xiàng)整改報(bào)告
- 農(nóng)民工考勤表(模板)
- 承臺混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 計(jì)量基礎(chǔ)知識培訓(xùn)教材201309
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 新課程理念下的班主任工作藝術(shù)
評論
0/150
提交評論