zoukankan      html  css  js  c++  java
  • Atitit.软件开发概念说明io系统区特殊文件名称保存最佳实践文件名称编码...filenameEncode 1.1. 不个网页title保存成个个文件的时候儿有无效字符的问题... 1

    Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode

    1.1. 不个网页title保存成个个文件的时候儿有无效字符的问题... 1

    1.2. 替换为中文全角符号(推荐,可读性最好) 1

    1.3. 使用转义(推荐)... 1

    1.4. 使用urlencode模式 (最简单,可读性一般) 1

    2. Code 1

    2.1. Code--全角符号 1

    1.1. 不个网页title保存成个个文件的时候儿有无效字符的问题...

    通常两个处理方式::: replace 成个空格或者使用转义(推荐)...  

    windows的文件名称无效字符.../\:* <>\"| 斜杠,反斜杠,冒号,星号,问号,左右尖括号 双引号 竖杠

    尖括号,双引号,树杠...而且...“.” 一个点 “..”双点分别用来表示当前目录父目录, 因此它们也不能作为文件名

    Linux的基本上只有反斜杠...

    1.2. 替换为中文全角符号(推荐,可读性最好)

    1.3. 使用转义(推荐)...

    1.4. 使用urlencode模式 (最简单,可读性一般)

    2. Code

    2.1. Code--全角符号

    /hislog/src/main/java/com/attilax/io/FileService.java

    import org.apache.commons.io.FileUtils;

    public class FileService {

    public static void main(String[] args) throws IOException {

    String oriname="C:\\0wkspc\\hislog\\src\\main\\java\\com\\attilax\\io\\filenameEncodeTest.txt";

    String t=FileUtils.readFileToString(new File(oriname));

    String newfilename=fileNameEncode_readableBest(t);

    FileUtils.writeStringToFile(new File("C:\\0wkspc\\hislog\\src\\main\\java\\com\\attilax\\io\\"+newfilename+".txt"), "data");

    System.out.println("--");

    }

    /**

     * but cant convert to ori

     * @param filenameOri

     * @return

     */

    public static String fileNameEncode_readableBest(String filenameOri) {

    filenameOri=filenameOri.replaceAll("\\\\", "、");

     filenameOri=filenameOri.replaceAll("\\/", "、"); 

    filenameOri=filenameOri.replaceAll("\\|", "、"); 

    filenameOri=filenameOri.replaceAll("\\*", "。"); 

    filenameOri=filenameOri.replaceAll("\\?", "?"); 

    filenameOri=filenameOri.replaceAll("\"", "“"); 

    filenameOri=filenameOri.replaceAll("<", "《"); 

    filenameOri=filenameOri.replaceAll(">", "》"); 

     filenameOri=filenameOri.replaceAll(":", ":"); 

    return filenameOri;

    }

    public static String fileNameEncode(String filenameOri) {

    // /\:* <>\"|

    if(filenameOri.equals("."))

    return "%2E";

    if(filenameOri.equals(".."))

    return "%2E%2E";

    Map<String, String> mp = (Map<String, String>) new ClosureNoExcpt() {

    @Override

    public Object execute(final Object arg0) {

    final Map<String, String> mp = new HashMap<String, String>() {

    {

    this.put("*", "%2A");

    }

    };

    final String[] as = strUtil.SplitByNone("/\\:?<>\"|");

    for (final String s : as) {

    try {

    mp.put(s, URLEncoder.encode(s, "utf-8"));

    } catch (final UnsupportedEncodingException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    return mp;

    }

    }.execute(null);

    String[] as = strUtil.SplitByNone(filenameOri);

    String fname2 = "";

    for (String s : as) {

    fname2 += mp.get(s) == null ? s : mp.get(s);

    }

    return fname2;

    }

  • 相关阅读:
    十一周总结
    第十周课程总结
    第九周课程总结&实验报告
    第八周课程总结&实验报告
    第七周&实验报告五
    第六周&Java实验报告四
    课程总结
    第十四周课程总结
    第十三周总结
    十二周课程总结
  • 原文地址:https://www.cnblogs.com/attilax/p/15197646.html
Copyright © 2011-2022 走看看