OpenCMS中用程序创建目录和资源文件

在OpenCms中有的时候要使用程序来建立目录,或者可能需要要用程序来建立对应自己定义的内容类型的内容文件,具体实现思路如下:
//路径的设定与当前操作文件所在的目录有关,假设当前文件存储在
//"/system/modules/cn.dce.www.migrate/elements/"内;
//eg.file name
resourcePath = "/project/static/aboutUs/123.html." ;
//eg.folder name
folderPath = "/project/static/aboutUs/dynamicStockExchange/2008/08" ;

//在OpenCms内所有的资源都对应其自己的资源ID
//具体资源与ID对应明细参考OpenCms——中文资源第一博客
//http://blog.csdn.net/qianxuncms/archive/2008/07/22/2693128.aspx
//这里是我转载的地址:http://javajiao.iteye.com/admin/blogs/256031
//

//在OpenCms内文件目录的资源ID是"0"
int folder_type = 0;

//如果是自己定义的资源类型的文件
//此处的ID对应为OpenCms项目内config/opencms-module.xml文件中
//注册XSD时设定的ID 我注册的时候是601
int dce_information_type=601;

try {
    			//创建一个指定类型的空的XML文件
    			//如果是创建folder类型的资源文件,只需要执行这条语句。
			cmsObject.createResource(resourcePath, dce_information_type);
			
			//如果创建的内容文件,还需要添加内容。
			I_CmsXmlContentValue contentValue = null;
			
			//有的时候避免操作的文件同时被别人占用
			//先将资源锁定,防止别人和你同时操作而出现异常。
			//cmsObject.lockResource(resourcePath);
			
			//将新建立的空的XML文件散列
			CmsFile templateFile = cmsObject.readFile(resourcePath);
			CmsXmlContent template = CmsXmlContentFactory.unmarshal(cmsObject, templateFile);
			
			//向散列后的文件中对对应的标记对内添加字符串内容.
			//取得"Title"字段,向其中添加对象title包含的内容。
			template.getValue("Title", Locale.CHINESE).setStringValue(cmsObject, title);
			
			... ...
			
			//将散列的XML文件转换成byte[]
			templateFile.setContents(template.marshal());
			cmsObject.writeFile(templateFile);

      			//如果前面对资源文件加锁了,开关原则,此处一定要解锁。
			//cmsObject.unlockResource(path);
						
    	} catch (Exception e) {
    		e.printStackTrace();
    		out.println(e);
    	}


ps:如果有其他问题,可以写邮件给我[[email protected]]
   如果我能解答,一定及时给您恢复。

你可能感兴趣的:(xml,.net,Blog,Gmail,idea)