opencms批量修改filetype和filename

本文介绍了一种使用Java在内容管理系统中批量修改文件类型的属性和文件名称的方法。通过提供的代码示例,可以实现对指定文件夹内的所有文件进行统一的类型变更或重命名操作,适用于数据迁移等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:我下面的程序是在数据迁移的事候,用来批量修改自定义结构化页面的,在批量修改filetype的时候请确保,修改后的模版xsd与修改前的一样,否则出现问题别找我。

代码如下:

CmsJspActionElement cms = new CmsJspActionElement(pageContext,request,response); CmsObject cmso = cms.getCmsObject(); List list = cmso.getResourcesInFolder(folderName, CmsResourceFilter.ALL); Iterator it = list.iterator(); while(it.hasNext()){ CmsResource resource = (CmsResource) it.next(); if(resource.isFolder()){ continue; } String target = resource.getRootPath(); out.println(changeFileType(cms, target, newType)); ... /* * 修改文件的file type属性 * 参数:target是目标文件的路径(绝对) */ public String changeFileType(CmsJspActionElement cms, String target, int newTypeId){ String rst = ""; Locale locale = Locale.ENGLISH; try{ CmsObject cmso = cms.getCmsObject(); cmso.lockResource(target); CmsResource resource = cmso.readFile(target, CmsResourceFilter.ALL); resource.setType(newTypeId); cmso.writeResource(resource); cmso.unlockResource(target); rst += target+" modify filetype to "+newTypeId+" success.<br/>"; }catch(Exception e){ rst+= e.getMessage()+"<br/>"; e.printStackTrace(); } return rst; }

批量修改文件名,也可以用来批量移动文件:

CmsJspActionElement cms = new CmsJspActionElement(pageContext,request,response); ... List list = cmso.getResourcesInFolder(folderName, CmsResourceFilter.ALL); Iterator it = list.iterator(); while(it.hasNext()){ CmsResource resource = (CmsResource) it.next(); if(resource.isFolder()){ continue; } String source = resource.getRootPath(); String fileName = resource.getName(); String target = folderName+"/"+fileName.replace("aa","bb"); out.println(changeFileName(cms, source, target)); ... /* * batch修改文件name * 参数:target是目标文件的路径(绝对) */ public String changeFileName(CmsJspActionElement cms, String source, String target){ String rst = ""; Locale locale = Locale.ENGLISH; try{ CmsObject cmso = cms.getCmsObject(); cmso.lockResource(source); CmsResource resource = cmso.readFile(source, CmsResourceFilter.ALL); cmso.moveResource(source,target); rst += "raname file:"+source+" to "+target+" success.<br/>"; }catch(Exception e){ rst+= e.getMessage()+"<br/>"; e.printStackTrace(); } return rst; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值