归档功能之CSS归档

因项目需要,对内部信息化系统进行前端文件的归档,CSS文件归档,伴随着图像URL的变化,因系统中CSS中含url:(../UI/images/excel.jpg)之类的相对路径。

故此需要对此类情况进行替换,在该功能中有三个已知的参数:

1、原CSS的绝对路径

2、CSS文件中背景图像的URL

3、CSS归档后的绝对路径

代码如下:

/*******************************************************************************
 * $Header$
 * $Revision$
 * $Date$
 *
 *==============================================================================
 *
 * Copyright (c) 2001-2006 Primeton Technologies, Ltd.
 * All rights reserved.
 *
 * Created on 2015-2-9
 *******************************************************************************/

package org.gocom.bpm.platform.test;

/**
 *
 *
 * 2015-2-9 上午09:07:35
 */
public class ImagePathMatch {

	public static void main(String[] args) {
		String src = "/eos-default/UI/style/commons.css";
		String image = "../images/null.gif" ;
		String dest = "/eos-default/UI/archive/UI/style/commons.css";

		/*
		 * 1、获取图像的绝对路径
		 * 2、比较源路径和目的路径的层次
		 * 3、得出最后的图像的相对路径
		 */
		String[] arrSrc = src.split("/");
		String[] arrImage = image.split("/");
		int i=arrSrc.length,j=arrImage.length;
		int p = 0,q=1;
		StringBuilder sb = new StringBuilder(128);
		sb.append("/");
		for(int k=0;k<j;k++){
			if(arrImage[k].equals("..")){
				p+=1 ;
			}
		}
		while((q+p*2)<i){
			sb.append(arrSrc[q++]).append("/");
		}
		while(p<j){
			sb.append(arrImage[p++]);
			if(p<j)
				sb.append("/");
		}
		System.out.println(sb.toString());
		String midPath = sb.toString() ;
		sb.delete(0, sb.length());
		String[] arrMid = midPath.split("/");
		String[] arrDest = dest.split("/");
		boolean flag = true ;
		q =0 ;
		while(flag){
			if(arrMid[q].equals(arrDest[q]))
				q ++ ;
			else
				flag = false;
		}
		p  = arrDest.length ;
		int s = q ;
		while(q<p){
			sb.append("..").append("/");
			q ++ ;
		}
		p = arrMid.length;
		s = s-1 ;
		while(s<p){
			sb.append(arrMid[s++]);
			if(s < p) sb.append("/");
		}

		System.out.println(sb.toString());
	}
}

  

时间: 2024-12-12 03:46:43

归档功能之CSS归档的相关文章

TurboGate邮件网关归档功能,让您不再害怕“万一”

俗话说:不怕一万,就怕万一!日常生活中,对于发生概率极低的事情(也就是我们常说的"万一"),如果一旦发生了,往往都会产生灾难性的后果.例如:金融危机.9.11事件.马航失联-- 对于企业来说,哪些"万一"事件会影响到企业呢?如:重要数据丢失.业务信息系统崩溃-- 对于这些风险事件,可以说,没有任何一种措施可以彻底杜绝其发生,但是企业却能通过一些工具.管理方法最大程度地降低这些风险,或者当风险事件发生后,将不良影响降到最低. 在 信息化时代的今天,电子邮件已然成为企事

什么邮箱的归档功能好用?

网易企业邮箱基于萨班斯法案对企业的要求,推出了符合<萨班斯法案>的归档系统:萨班斯归档.网易企业邮箱的萨班斯归档功能,能有效的解决企业面临商业纠纷却又缺少相应证据的问题,可以对重要的往来邮件实时记录和存储,并且能保证归档邮件长久保存,不被篡改.邮件归档后,满足<萨班斯法案>对邮件存档的审计要求,具有法律效益,可以成为法律依据. 不少大公司都有海量数据需要处理备份,而萨班斯归档功能也可以针对海量数据进行高效的迁移和管理.传统的数据备份成分高.运转速度慢,不能满足企业超大量数据的存储需

oracle归档模式和非归档模式的切换

Oracle从未归档日志改成归档日志: SQL> shutdown immediate; 数据库已经关闭. 已经卸载数据库. Oracle 例程已经关闭. SQL> startup mount; Oracle 例程已经启动. 数据库装载完毕. SQL> alter database archivelog; 数据库已更改. SQL> alter database open; 数据库已更改. 创建归档路径(oracle安装用户权限),对于linux环境,在root用户,或者Oracle

归档模式和非归档模式 Oracle 10g学习系列(4)

一.归档模式: Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志组.当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行. 如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档.比如,当前在使用联

Oracle归档模式和非归档模式

一 什么是Oracle归档模式? Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志组.当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行. 如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档.

Oracle归档模式与非归档模式设置

(转自:http://www.cnblogs.com/spatial/archive/2009/08/01/1536429.html) Oracle的日志归档模式可以有效的防止instance和disk的故障,在数据库故障恢复中不可或缺,由于oracle初始安装模式为非归档模式,因此需要将其设置为归档模式,下面就其方法和步骤做一些总结,虽然简单,但这是管理oracle数据库必备之工,故有如下陈述. 例子是建立在windowsXP和oracle11g的环境下,如有环境不同,仅供参考. Oracle

oracle11g设置归档模式和非归档模式

1.首先查看当前数据库是否处于归档模式 可使用如下两种方式查看 1.1 select name, log_mode from v$database; log_mode的值为 NOARCHIVELOG 表示数据库处于非归档模式 log_mode的值为 ARCHIVELOG 表示数据库处于归档模式 1.2 archive log list; (此方法需要 as sysdba) Database log mode 的值为 No Archive Mode Automatic archival 的值为 D

怎样将Oracle数据库设置为归档模式及非归档模式

1.Oracle日志分类 分三大类: Alert log files--警报日志,Trace files--跟踪日志(用户和进程)和 redo log 重做日志(记录数据库的更改). 归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换时,后台进程ARCH会将重做日志的内容保存到归档日志中,当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库.在Oracle10g中,只要

IOS文件操作和自定义对象的归档(序列化)、反归档(反序列化)

IOS对文件操作包含文件的创建,读写,移动,删除等操作. 1.文件的创建: //设定文本框存储文件的位置 NSString *strFilePath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]; //指定存储文件的文件名 NSString *fileName=[strFilePath stringByAppendingPathComponent:@