Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode 1.1. 不个网页title保存成个个文件的时候儿有无效字符的问题... 1
Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode
1.1. 不个网页title保存成个个文件的时候儿有无效字符的问题... 1
1.4. 使用urlencode模式 (最简单,可读性一般) 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;
}
相关文章
- ASP.NET Core中如何更改文件上传大小限制maxAllowedContentLength属性值
- 如何解决GBK的编码的文件中的中文转换成为UTF-8编码的文件而且不乱码
- 读取文件中的第一行数据
- 编码问题:python写入文件
- bs4修改html文件和保存
- 在引入的css或者js文件后面加参数的作用
- 安装cdh5.0执行impala-shell命令报impala_shell.py文件找不到
- 《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释
- 创建一个文件夹用于写入UTF-8编码的文件
- gitlab添加yml文件.gitlab-ci.yml
- perl 命令批量替换文件中的一些内容
- 使用 JavaScript 上传 PDF 和 Excel 等二进制文件到 ABAP 服务器并进行解析
- Flutter 加载本地json文件
- PHP文件上传【前后台编码】
- C++判断文件编码格式
- IDEA 工程文件 UTF-8 编码设置
- move_upload_file 因为文件字符集编码iconv引起的问题
- leaflet 上传包含shp的zip文件,在map上解析显示图形(059)
- 导出文本pdf文件
- 使用java进行文件编码转换
- python 读取unicode编码文件
- 利用Certutil对任意文件进行编码和解码——真实攻击中会经常用到
- linux中从一台机器复制文件或目录到另一台机器上linux机器上
- 〖Python自动化办公篇⑯〗 - PPT 文件自动化 - PPT 段落的使用
- Android MediaCodec硬编码H264文件(四)