• 关于Android 文件API允许创建目录名的最大字符数


    问题说明

    测试文件管理器的时候遇到到一个诡异的问题,新建目录输入了比较长的目录名,目录创建成功(File.mkdir返回true),但是一刷新文件管理器就挂了。之后再也进不了文件管理器,都是闪退。换了好几个文件管理器测试,如:ES,MIUI,OI。问题依旧。adb log 输出的信息如下,没有多少帮助。
     
    03-20 17:38:48.969 F/<unknown>( 6020): stack corruption detected: aborted
    03-20 17:38:48.999 W/InputDispatcher( 1366): channel '417e1c48 com.metago.astro/com.metago.astro.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
    03-20 17:38:48.999 E/InputDispatcher( 1366): channel '417e1c48 com.metago.astro/com.metago.astro.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
    03-20 17:38:48.999 W/InputDispatcher( 1366): Attempted to unregister already unregistered input channel '417e1c48 com.metago.astro/com.metago.astro.MainActivity (server)'
    03-20 17:38:48.999 I/WindowManager( 1366): WINDOW DIED Window{417e1c48 com.metago.astro/com.metago.astro.MainActivity paused=false}
    03-20 17:38:49.009 D/Zygote  ( 1181): Process 6020 exited cleanly (127)
    03-20 17:38:49.009 E/JavaBinder( 1366): !!! FAILED BINDER TRANSACTION !!!
    03-20 17:38:49.009 I/ActivityManager( 1366): Process com.metago.astro (pid 6020) has died.
    03-20 17:38:49.019 W/ActivityManager( 1366): Force removing ActivityRecord{418ad088 com.metago.astro/.MainActivity}: app died, no saved state

    问题分析

    由于测试的文件管理器都是同样的现象,怀疑是目录名太长引起的。于是写了一个测试程序,得到如下结果。
    • 4.2.2 File.mkdir 目录名的允许的最大中文字符数为85
    • 4.1.2 File.mkdir 目录名的允许的最大中文字符数为255,但是如果存在大于或等于90个中文字符的目录,在调用 File.list 的时候程序会挂掉
    • 4.0.4 File.mkdir 目录名的允许的最大中文字符数为255,但是如果存在大于或等于106个中文字符的目录,在调用 File.list 的时候程序会挂掉 

    结论

    4.2.2 貌似修复了此问题,限制允许创建目录名的最大长度为85,能够创建成功的目录都不会引起调用 File.list 程序崩溃。因此,文件管理器也在UI层限制用户输入文件名最大长度为85。
  • 相关阅读:
    Tarjan算法求解桥和边双连通分量(附POJ 3352 Road Construction解题报告)
    无向图求点割集的算法
    hdu 2121无根最小树形图要建一个虚拟节点
    hdu 1576扩展欧几里得算法
    欧几里德算法的扩展-求解不定方程
    hdu 3072 强连通+缩点+最小树形图思想
    1352 集合计数 扩展欧几里德算法
    1247 可能的路径 逆向思维
    Atcoder B
    C. Timofey and a tree 观察题 + dfs模拟
  • 原文地址:https://www.cnblogs.com/shaobin0604/p/2971681.html
Copyright © 2020-2023  润新知