我正在尝试为我正在创建的文件命名.我只是想知道Android中的最大文件名长度是多少?
是否有文件名规范?我可以用这样的字符-或>?
我在测试后发现linux允许除了/和null(\0)之外的文件名中的任何字符.那么我不应该在文件名中允许什么序列?我听说一个领导者-可能会混淆一些命令行程序,这对我来说无关紧要,但如果他们决定收集一堆文件并用一些GNU程序过滤它,它可能会打扰其他人.
建议我删除前导和尾随空格,我计划只是因为通常用户并不意味着有前导/尾随空格.
可能存在哪些有问题的序列以及我应该考虑不允许的序列?我也在考虑为了方便而不允许在Windows中使用非法字符.我想我可能不会在开头允许短划线(破折号是一个合法的窗口角色)
我在嵌入式Linux平台上运行一个小型Java应用程序.用OpenJDK替换Java VM JamVM后,无法正确存储带有特殊字符的文件名.像变音符号这样的特殊字符被问号所取代.
这是我的测试代码:
import java.io.File;
import java.io.IOException;
public class FilenameEncoding
{
public static void main (String[] args) {
String name = "umlaute-äöü";
System.out.println("\nname = " + name);
System.out.print("name in Bytes: ");
for (byte b : name.getBytes()) {
System.out.print(Integer.toHexString(b & 255) + " ");
}
System.out.println();
try {
File f = new File(name);
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行它会提供以下输出:
name = umlaute-???
name in Bytes: 75 6d 6c 61 75 74 65 2d 3f 3f …Run Code Online (Sandbox Code Playgroud)