zoukankan      html  css  js  c++  java
  • 长文件名处理

    Code:

    /**
    * 短文件名处理方式处理长文件名, 名字前ShortFileNameLong位 +~+ 时间戳 [+ .扩展名]; 中英文支持,字符长度(中文算2).
    * @param s 字符串
    * @param max 最大数
    * @param ShortFileNameLong 保留多少位
    * @return
    * 例:中中中中中中中中中中中中中中中中~1185169295390.zip
    * 123456789012345678901234567890123456~1185163038890.zip
    */
    public static String makeShortName(String s, int max, int ShortFileNameLong) {
    if(s == null || s.equals("")){return s;}
    char[] cs = s.toCharArray();
    int count = 0;
    int last = cs.length;
    for(int i=0; i<cs.length; i++) {
    if(cs[ i ]>255)
    count+=2;
    else
    count++;
    if(count>max) {
    last = i+1;
    break;
    }
    }
    if(count<=max) // string is short or just the size!
    return s;
    // string is too long:
    int dot = s.indexOf('.');
    String suffix = String.valueOf(System.currentTimeMillis());
    for(int i=last-1; i>=0; i--) {
    if(cs[ i ]>255)
    count-=2;
    else
    count--;
    if(count<=ShortFileNameLong) {
    if (dot < 0) {
    return s.substring(0, i) + "~" + suffix;
    }else{
    String name = s.substring(0, dot);
    String ext = s.substring(dot);// include .
    if (ext.length() > i) {
    ext = ext.substring(0, i);
    }
    if (name.length() > i) {
    name = name.substring(0, i) + "~" + suffix;
    } else {
    name = name + "~" + suffix;
    }
    return name + ext;
    }
    }
    }
    return "~";
    }

    public static void main(String[] args) {
    System.out.println(makeShortName("",100,32));
    System.out.println(makeShortName(null,100,32));
    char[] cs = new char[200];
    Arrays.fill(cs, 'a');
    String longName = new String(cs);
    System.out.println(makeShortName(longName,100,32));
    Arrays.fill(cs, 'b');
    System.out.println(makeShortName(longName + "." + new String(cs),100,32));
    System.out.println(makeShortName(longName + ".txt",100,32));
    }
  • 相关阅读:
    限制次数登录系统
    1-10内的数字累加,输出和大于20的数字。
    输出某个年龄的人的比例
    计算100以内的所有偶数和
    计数器解决一个人数增长问题
    switch处理多分支结构
    if处理多分支结构
    webstom破解
    下拉框左右选择
    勾中行变色效果
  • 原文地址:https://www.cnblogs.com/dkblog/p/1980875.html
Copyright © 2011-2022 走看看