com.kamike.misc.FsNameUtils.java Source code

Java tutorial

Introduction

Here is the source code for com.kamike.misc.FsNameUtils.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.kamike.misc;

import com.google.common.escape.Escaper;
import com.google.common.escape.Escapers;
import com.google.common.net.UrlEscapers;
import java.util.ArrayList;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.time.FastDateFormat;

/**
 *
 * @author THiNk
 */
public class FsNameUtils {

    public static String getName(String prefix, String disk, String filename, String fid, String uid) {
        String name = FilenameUtils.getName(filename);

        Date date = new Date(System.currentTimeMillis());
        String extension = FilenameUtils.getExtension(name);
        return getName(prefix, disk, getShortDate(date), name, fid, uid, extension);
    }

    public static String getIncomingName(String fileName) {
        String name = FilenameUtils.getFullPathNoEndSeparator(fileName);
        //
        int end = FilenameUtils.indexOfLastSeparator(name);
        String parent = name.substring(end);
        int lastEnd = FilenameUtils.indexOfLastSeparator(parent);
        return parent.substring(lastEnd, end);
    }

    public static ArrayList<String> getDescriptions(String fileName) {
        ArrayList<String> ret = new ArrayList<String>();
        String baseName = FilenameUtils.getBaseName(fileName);
        String escapedName = escapeName(baseName);

        Pattern p = Pattern.compile("\\[(.*?)\\]");
        Matcher m = p.matcher(escapedName);

        while (m.find()) {
            ret.add(m.group(1));

        }
        return ret;
    }

    public static String getLocalUrl(String disk, String fileName, String fid, String uid, Date date) {

        //?
        String validPath = getName(disk, fileName, fid, uid, date);

        return FilenameUtils.getPath(validPath);
    }

    public static String getName(String disk, String filename, String fid, String uid, Date date) {
        String name = FilenameUtils.getName(filename);
        String prefix = FilenameUtils.getPrefix(filename);

        String extension = FilenameUtils.getExtension(filename);
        //?
        return getName(prefix, disk, getShortDate(date), name, fid, uid, extension);

    }

    public static String getAttributeName(String prefix, String disk, String name, String readableName, String fid,
            String uid, Date date) {

        String extension = FilenameUtils.getExtension(name);
        //?
        return getAttributeName(prefix, disk, getShortDate(date), name, readableName, fid, uid, extension);

    }

    public static String getAttributeName(String prefix, String disk, String date, String name, String readableName,
            String fid, String uid, String extension) {

        String escapedName = FilenameUtils.getBaseName(name);
        StringBuffer buffer = new StringBuffer();
        buffer.append(prefix);
        buffer.append(disk);
        buffer.append('/');
        buffer.append(uid);
        buffer.append('/');
        buffer.append(date);
        buffer.append('/');
        buffer.append(fid);
        buffer.append("/[");

        //?idid
        buffer.append(escapedName);
        buffer.append(']');
        buffer.append(readableName);

        return buffer.toString();
    }

    public static String getNameInZip(String prefix, String disk, String name, String fid, String uid, Date date) {

        String extension = FilenameUtils.getExtension(name);
        //?
        return getNameInZip(prefix, disk, getShortDate(date), name, fid, uid, extension);

    }

    public static String getName(String prefix, String disk, String name, String fid, String uid, Date date) {

        String extension = FilenameUtils.getExtension(name);
        //?
        return getName(prefix, disk, getShortDate(date), name, fid, uid, extension);

    }

    public static String getName(String disk, String filename, String fid, String uid) {
        String name = FilenameUtils.getName(filename);
        String prefix = FilenameUtils.getPrefix(filename);
        Date date = new Date(System.currentTimeMillis());
        String extension = FilenameUtils.getExtension(filename);
        return getName(prefix, disk, getShortDate(date), name, fid, uid, extension);
    }

    public static String escapeUrl(String name) {
        return UrlEscapers.urlFragmentEscaper().escape(name);
    }

    public static String escapeName(String name) {

        Escaper myEscaper = Escapers.builder().addEscape('\'', "").addEscape(' ', "").addEscape('&', "")
                .addEscape('$', "").addEscape('~', "").addEscape('`', "").addEscape('#', "").addEscape('@', "")
                .addEscape('(', "").addEscape('+', "").addEscape(')', "").addEscape('<', "").addEscape('>', "")
                .addEscape('%', "").addEscape('\"', "").addEscape('.', "").addEscape('=', "").addEscape('-', "")
                .addEscape(';', "").addEscape(':', "").addEscape('?', "").addEscape('*', "").addEscape('|', "")
                .addEscape('\\', "").addEscape('/', "").build();

        return myEscaper.escape(name);
    }

    public static String getName(String prefix, String disk, String date, String name, String fid, String uid,
            String extension) {
        String baseName = FilenameUtils.getBaseName(name);
        String escapedName = escapeName(baseName);
        StringBuffer buffer = new StringBuffer();
        buffer.append(prefix);
        buffer.append(disk);
        buffer.append('/');
        buffer.append(uid);
        buffer.append('/');
        buffer.append(date);
        buffer.append('/');
        //?idid
        buffer.append(fid);
        buffer.append('/');
        buffer.append(escapedName);
        if (!"".equals(extension)) {
            buffer.append('.');
            buffer.append(extension);
        }

        return buffer.toString();
    }

    public static String getNameInZip(String prefix, String disk, String date, String name, String fid, String uid,
            String extension) {

        String escapedName = name;
        StringBuffer buffer = new StringBuffer();
        buffer.append(prefix);
        buffer.append(disk);
        buffer.append('/');
        buffer.append(uid);
        buffer.append('/');
        buffer.append(date);
        buffer.append('/');
        //?idid
        buffer.append(fid);

        buffer.append(escapedName);

        return buffer.toString();
    }

    public static String getDate(Date date) {

        return FastDateFormat.getInstance("yyyyMMddHHmmss").format(date);

    }

    public static String getShortDate(Date date) {

        return FastDateFormat.getInstance("yyyyMMdd").format(date);

    }
}