当前位置: 首页 > 面试题库 >

JOBB DirectoryFullException:de.waldheinz.fs.fat.DirectoryFullException:目录已满

郜彬
2023-03-14
问题内容

我正在尝试在包含192个jpg文件(共约70 mb)的目录上使用JOBB工具。当我运行命令时,jobb -d C:/sdk/tools/dir/data -k 123456 -o com.nick.app.obb -pn com.nick.app -pv 1它会产生以下日志:

Slop: 0   Directory Overhead: 0
Slop: 189853   Directory Overhead: 24704
Partial Sector [32] writing to sector: 277
Partial Sector [32] writing to sector: 277
Partial Sector [32] writing to sector: 277
Partial Sector [299] writing to sector: 897
Partial Sector [416] writing to sector: 1733
Partial Sector [148] writing to sector: 2385
Partial Sector [95] writing to sector: 3013
Partial Sector [498] writing to sector: 3573
Partial Sector [146] writing to sector: 4061
Partial Sector [427] writing to sector: 4581
Partial Sector [204] writing to sector: 5213
Partial Sector [115] writing to sector: 5769
Partial Sector [69] writing to sector: 6481
Partial Sector [79] writing to sector: 7077
Partial Sector [346] writing to sector: 7661
Partial Sector [93] writing to sector: 8213
Partial Sector [120] writing to sector: 8857
Partial Sector [423] writing to sector: 9461
Partial Sector [4] writing to sector: 10149
Partial Sector [184] writing to sector: 11065
Partial Sector [479] writing to sector: 11921
Partial Sector [83] writing to sector: 12569
Partial Sector [358] writing to sector: 13241
Partial Sector [378] writing to sector: 14009
Partial Sector [366] writing to sector: 14669
Partial Sector [393] writing to sector: 15677
Partial Sector [323] writing to sector: 16385
Partial Sector [236] writing to sector: 16989
Partial Sector [233] writing to sector: 17645
Partial Sector [503] writing to sector: 18345
Partial Sector [348] writing to sector: 19017
Partial Sector [473] writing to sector: 19721
Partial Sector [192] writing to sector: 20345
Partial Sector [398] writing to sector: 20805
Partial Sector [67] writing to sector: 21617
Partial Sector [3] writing to sector: 22437
Partial Sector [315] writing to sector: 23489
Partial Sector [161] writing to sector: 24045
Partial Sector [421] writing to sector: 24569
Partial Sector [465] writing to sector: 25557
Partial Sector [164] writing to sector: 26485
Partial Sector [458] writing to sector: 27177
Partial Sector [412] writing to sector: 28153
Partial Sector [1] writing to sector: 28633
Partial Sector [119] writing to sector: 29441
Partial Sector [367] writing to sector: 30413
Partial Sector [274] writing to sector: 31397
Partial Sector [325] writing to sector: 32369
Partial Sector [355] writing to sector: 33361
Partial Sector [187] writing to sector: 34025
Partial Sector [136] writing to sector: 34829
Partial Sector [157] writing to sector: 35873
Partial Sector [175] writing to sector: 36733
Partial Sector [106] writing to sector: 37673
Partial Sector [79] writing to sector: 38593
Partial Sector [379] writing to sector: 39545
Partial Sector [296] writing to sector: 40517
Partial Sector [440] writing to sector: 41205
Partial Sector [277] writing to sector: 41985
Partial Sector [153] writing to sector: 42609
Partial Sector [484] writing to sector: 43385
Partial Sector [363] writing to sector: 44329
Partial Sector [510] writing to sector: 45097
Partial Sector [296] writing to sector: 46101
Partial Sector [314] writing to sector: 47081
Partial Sector [244] writing to sector: 48073
Partial Sector [187] writing to sector: 48825
Partial Sector [253] writing to sector: 49825
Partial Sector [374] writing to sector: 50833
Partial Sector [508] writing to sector: 51777
Partial Sector [26] writing to sector: 52517
Partial Sector [192] writing to sector: 53385
Partial Sector [137] writing to sector: 54209
Partial Sector [312] writing to sector: 55029
Partial Sector [145] writing to sector: 55829
Partial Sector [394] writing to sector: 56517
Partial Sector [150] writing to sector: 57317
Partial Sector [81] writing to sector: 58197
Partial Sector [198] writing to sector: 59101
Partial Sector [358] writing to sector: 59929
Partial Sector [397] writing to sector: 60729
Partial Sector [142] writing to sector: 61209
Partial Sector [148] writing to sector: 62193
Partial Sector [365] writing to sector: 62833
Partial Sector [93] writing to sector: 63293
Partial Sector [450] writing to sector: 63701
Partial Sector [10] writing to sector: 64485
Partial Sector [354] writing to sector: 64969
Partial Sector [174] writing to sector: 65441
Partial Sector [435] writing to sector: 65961
Partial Sector [64] writing to sector: 66553
Partial Sector [41] writing to sector: 67053
Partial Sector [463] writing to sector: 67489
Partial Sector [177] writing to sector: 68041
Partial Sector [403] writing to sector: 68509
Partial Sector [479] writing to sector: 69305
Partial Sector [248] writing to sector: 69761
Partial Sector [331] writing to sector: 70245
Partial Sector [361] writing to sector: 70745
Partial Sector [56] writing to sector: 71281
Partial Sector [301] writing to sector: 71805
Partial Sector [253] writing to sector: 72629
Partial Sector [461] writing to sector: 73041
Partial Sector [304] writing to sector: 73561
Partial Sector [218] writing to sector: 74105
Partial Sector [147] writing to sector: 74765
Partial Sector [303] writing to sector: 75365
Partial Sector [410] writing to sector: 76321
Partial Sector [280] writing to sector: 77137
Partial Sector [484] writing to sector: 77697
Partial Sector [344] writing to sector: 78465
Partial Sector [189] writing to sector: 79001
Partial Sector [126] writing to sector: 79413
Partial Sector [262] writing to sector: 79929
Partial Sector [187] writing to sector: 80317
Partial Sector [465] writing to sector: 80869
Partial Sector [350] writing to sector: 81313
Partial Sector [236] writing to sector: 81793
Partial Sector [98] writing to sector: 82333
Partial Sector [223] writing to sector: 83209
Partial Sector [1] writing to sector: 83593
Partial Sector [51] writing to sector: 84577
Partial Sector [340] writing to sector: 84993
Partial Sector [377] writing to sector: 85961
Partial Sector [232] writing to sector: 86829
Partial Sector [229] writing to sector: 87253
Partial Sector [337] writing to sector: 88225
Partial Sector [205] writing to sector: 89285
Partial Sector [353] writing to sector: 90089
Partial Sector [289] writing to sector: 90921
Partial Sector [369] writing to sector: 91969
Partial Sector [283] writing to sector: 92741
Partial Sector [267] writing to sector: 93553
Partial Sector [313] writing to sector: 94049
Partial Sector [363] writing to sector: 94521
Partial Sector [415] writing to sector: 95245
Partial Sector [181] writing to sector: 96269
Partial Sector [420] writing to sector: 96733
Partial Sector [251] writing to sector: 97733
Partial Sector [244] writing to sector: 98221
Partial Sector [406] writing to sector: 98669
Partial Sector [226] writing to sector: 99069
Partial Sector [363] writing to sector: 100045
Partial Sector [133] writing to sector: 100769
Partial Sector [461] writing to sector: 101209
Partial Sector [329] writing to sector: 102337
Partial Sector [495] writing to sector: 103201
Partial Sector [452] writing to sector: 104045
Partial Sector [97] writing to sector: 105153
Partial Sector [236] writing to sector: 106177
Partial Sector [10] writing to sector: 106645
Partial Sector [292] writing to sector: 107725
Partial Sector [36] writing to sector: 108725
Partial Sector [500] writing to sector: 109793
Partial Sector [441] writing to sector: 110681
Partial Sector [128] writing to sector: 111329
Partial Sector [293] writing to sector: 112277
Partial Sector [382] writing to sector: 112737
Partial Sector [493] writing to sector: 113229
Partial Sector [256] writing to sector: 113653
Partial Sector [20] writing to sector: 114893
Partial Sector [351] writing to sector: 115905
Partial Sector [110] writing to sector: 116913
Partial Sector [322] writing to sector: 118041
Partial Sector [156] writing to sector: 118589
Partial Sector [232] writing to sector: 119013
Partial Sector [331] writing to sector: 119533
Partial Sector [297] writing to sector: 120509
Partial Sector [310] writing to sector: 121549
Partial Sector [392] writing to sector: 122545
Partial Sector [285] writing to sector: 123485
Partial Sector [108] writing to sector: 124065
de.waldheinz.fs.fat.DirectoryFullException: directory is full
        at de.waldheinz.fs.fat.Fat16RootDirectory.changeSize(Fat16RootDirectory.java:109)
        at de.waldheinz.fs.fat.AbstractDirectory.addEntries(AbstractDirectory.java:282)
        at de.waldheinz.fs.fat.FatLfnDirectory.addFile(FatLfnDirectory.java:139)
        at com.android.jobb.Main$1.processFile(Main.java:475)
        at com.android.jobb.Main.processAllFiles(Main.java:604)
        at com.android.jobb.Main.processAllFiles(Main.java:600)
        at com.android.jobb.Main.main(Main.java:417)
Exception in thread "main" java.lang.RuntimeException: Error adding file with name: img178.jpg
        at com.android.jobb.Main$1.processFile(Main.java:478)
        at com.android.jobb.Main.processAllFiles(Main.java:604)
        at com.android.jobb.Main.processAllFiles(Main.java:600)
        at com.android.jobb.Main.main(Main.java:417)

有什么建议吗?


问题答案:

根本原因分析

de.waldheinz.fs.fat.DirectoryFullException: directory is full

Fat16RootDirectory becomes fullClusterChainDirectory grows beyond it's ClusterChainDirectory's maximum size(512 MB)

异常发生在哪里?
:DirectoryFullException.java

DirectoryFullException(int currentCapacity, int requestedCapacity) {
    this("directory is full", currentCapacity, requestedCapacity);
}

对于这个问题,我希望有一个解决方案和一些建议。 希望对您有帮助。

解决方案1:

在Windows上:如果您的文件夹“数据”丢失图片,并复制到android sdk-tools目录

data/1.jpg
data/2.jpg
data/3.jpg
data/...
data/5000.jpg

而你用

console>>>jobb -d C:/sdk/tools/dir/data -k 123456 -o com.nick.app.obb -pn com.nick.app -pv 1

您将得到提到的错误。尝试添加一个目录层次结构并将“数据”目录创建到子文件夹

root/data/1.jpg
root/data/2.jpg
root/data/3.jpg
root/data/...
root/data/5000.jpg

console>>>jobb -d C:/sdk/tools/dir/root/data -k 123456 -o com.nick.app.obb -pn com.nick.app -pv 1

您必须牢记,如果以后要阅读Obb,则图片现在位于子文件夹中。

建议1:

要检查sector/cluster/FAT尺寸,请运行"jobb -v -dump [obb]"。这将打印出包括"Sectors per cluster"和的信息"Sectors per FAT"

在我的旧.obb文件中,这些值分别为8和150。8不是150的因数,所以我可能一直在遇到上述内核错误。

您需要确保您使用的是更新版本jobb.jar
fat32lib.jar解决该问题。使用Google云端硬盘上的当前库版本,我现在每个群集获得8个扇区,每个FAT获得184个扇区。

我尚未验证这是否可以解决我之前看到的数据损坏问题。我将进行更多测试,并在此处报告。

建议2:

黑客攻击可以解决问题。但是占用了更多的内存:

这个问题的确开始变得非常无聊。今天,我有点想出了一个解决办法,这很荒谬,但是看起来好像向.obb添加额外数据似乎可以解决问题(至少对我而言)。确切地说,我的原始.obb文件大小为110MB,现在为220MB,应用程序读取数据时不会损坏。到目前为止,这是我迄今为止对应用程序所做的最肮脏的黑客攻击,对此我并不感到骄傲,但是,至少现在正在运行。:p

建议3:

2015年10月19日,他们发布了更新版本:android-sdk-
fat32lib

该版本解决了与Android SDK一起发布的JOBB工具的问题,因为该工具(Android SDK 23)无法生成大于512M的OBB文件。

更新:

您将在以下部分中获得原始版本和修改版本的 源代码

  • 原始版本可在https://github.com/waldheinz/fat32-lib/获得
  • 修改后的版本位于 https://android.googlesource.com/platform/external/fat32lib/


 类似资料:
  • 我在Intellij IDEA中工作,我无法用gradle评估这个问题。我达到了学校实验室机器的内存配额,所以我被告知删除我的. gradle目录,因为它占用了最多的空间。但是现在我似乎根本无法刷新我的gradle构建。 自从我删除以来,已经过了一段时间。渐变/目录。我刚才检查了一下,发现我可以通过终端(linux)进入目录,但运行“ls”不会显示文件夹的任何内容。 尝试在intellij中刷新时

  • 问题内容: 我们可以在docker中拥有一个数据量: 但是,如果数据量存在,则与使用装入文件夹中的数据有什么不同? 问题答案: 它与使用-v / path / to / data / in / container:/ home / user / a_good_place_to_have_data装入文件夹中的数据有何不同? 这是因为,如“ 将主机目录装载为数据卷 ”中所述 主机目录从本质上说是依赖

  • 问题内容: 我正在使用MEAN.JS(不是.IO)提供的样板MEAN启动一个新项目。 我是ui-router的新手,在弄清楚如何完成此方案时遇到了麻烦: 如果用户已登录,请进入状态“ home.loggedIn”。 如果用户已注销,请进入状态“ home.loggedOut” 路由网址为“ /”,并且不应更改。 这是路由提供者当前的样子: 我正在寻找某种类似于db术语的pre-save钩子来确定要

  • 目录 第一部分 数据结构 第一章 字符串 1.0 本章导读 1.1 旋转字符串 1.2 字符串包含 1.3 字符串转换成整数 1.4 回文判断 1.5 最长回文子串 1.6 字符串的全排列 1.10 本章习题 第二章 数组 2.0 本章导读 2.1 寻找最小的 k 个数 2.2 寻找和为定值的两个数 2.3 寻找和为定值的多个数 2.4 最大连续子数组和 2.5 跳台阶 2.6 奇偶排序 2.7

  • 爬虫介绍、就业情况 HTTP协议介绍 Requests使用 解析器Xpath介绍 MongoDB与MySQL 多线程爬虫 Scrapy介绍 Scrapy-redis介绍 介绍 第一章:数据采集概况 什么是数据采集 如何学习数据采集 数据采集前景讨论 爬虫工程师面试题 第二章:HTTP协议介绍 HTTP协议(面试高频) HTTPS协议 Cookie状态管理 HTTP报文 第三章:Requests使用

  • 在实际的应用中,SQLite作为目前最为流行的开源嵌入式关系型数据库,在系统的架构设计中正在扮演着越来越为重要的角色。和很多其它嵌入式NoSQL数据库不同的是,SQLite支持很多关系型数据库的基本特征,这在数据移植、程序演示等应用中有着不可替代的优势。从官方文档中我们可以获悉到,SQLite支持的数据量和运行效率都是非常骄人的,因此在海量数据的解决方案中,SQLite可以作为数据预计算的桥头堡,