Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
56b943f8
提交
56b943f8
authored
11 年前
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
An archive tool that uses chunk sorting and compression
上级
299c26f5
master
noel-pr1
plus33-master
pr/267
stumc-Issue#576
version-1.4.198
version-1.4.197
version-1.4.196
version-1.4.195
version-1.4.194
version-1.4.193
version-1.4.192
version-1.4.191
version-1.4.190
version-1.4.188
version-1.4.187
version-1.4.186
version-1.4.185
version-1.4.184
version-1.4.183
version-1.4.182
version-1.4.181
version-1.4.178
version-1.4.177
version-1.3
无相关合并请求
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
159 行增加
和
117 行删除
+159
-117
ArchiveTool.java
h2/src/tools/org/h2/dev/fs/ArchiveTool.java
+147
-105
ArchiveToolStore.java
h2/src/tools/org/h2/dev/fs/ArchiveToolStore.java
+12
-12
没有找到文件。
h2/src/tools/org/h2/dev/fs/ArchiveTool.java
浏览文件 @
56b943f8
差异被折叠。
点击展开。
h2/src/tools/org/h2/dev/fs/ArchiveToolStore.java
浏览文件 @
56b943f8
...
@@ -64,7 +64,7 @@ public class ArchiveToolStore {
...
@@ -64,7 +64,7 @@ public class ArchiveToolStore {
System
.
out
.
println
(
"-extract <file> <targetDir>"
);
System
.
out
.
println
(
"-extract <file> <targetDir>"
);
}
}
}
}
private
void
compress
(
String
sourceDir
)
throws
Exception
{
private
void
compress
(
String
sourceDir
)
throws
Exception
{
start
();
start
();
long
tempSize
=
8
*
1024
*
1024
;
long
tempSize
=
8
*
1024
*
1024
;
...
@@ -275,7 +275,7 @@ public class ArchiveToolStore {
...
@@ -275,7 +275,7 @@ public class ArchiveToolStore {
System
.
out
.
println
(
"Compressed to "
+
System
.
out
.
println
(
"Compressed to "
+
FileUtils
.
size
(
fileName
)
/
MB
+
" MB"
);
FileUtils
.
size
(
fileName
)
/
MB
+
" MB"
);
printDone
();
printDone
();
}
}
private
void
start
()
{
private
void
start
()
{
this
.
start
=
System
.
currentTimeMillis
();
this
.
start
=
System
.
currentTimeMillis
();
...
@@ -328,14 +328,14 @@ public class ArchiveToolStore {
...
@@ -328,14 +328,14 @@ public class ArchiveToolStore {
break
;
break
;
}
}
}
}
storeTemp
=
new
MVStore
.
Builder
().
storeTemp
=
new
MVStore
.
Builder
().
fileName
(
tempFileName
).
fileName
(
tempFileName
).
autoCommitDisabled
().
autoCommitDisabled
().
open
();
open
();
MVMap
<
Integer
,
String
>
fileNames
=
storeTemp
.
openMap
(
"fileNames"
);
MVMap
<
Integer
,
String
>
fileNames
=
storeTemp
.
openMap
(
"fileNames"
);
MVMap
<
String
,
int
[]>
filesTemp
=
storeTemp
.
openMap
(
"files"
);
MVMap
<
String
,
int
[]>
filesTemp
=
storeTemp
.
openMap
(
"files"
);
int
fileId
=
0
;
int
fileId
=
0
;
for
(
Entry
<
String
,
int
[]>
e
:
files
.
entrySet
())
{
for
(
Entry
<
String
,
int
[]>
e
:
files
.
entrySet
())
{
...
@@ -344,7 +344,7 @@ public class ArchiveToolStore {
...
@@ -344,7 +344,7 @@ public class ArchiveToolStore {
totalSize
+=
e
.
getValue
().
length
/
4
;
totalSize
+=
e
.
getValue
().
length
/
4
;
}
}
storeTemp
.
commit
();
storeTemp
.
commit
();
files
=
filesTemp
;
files
=
filesTemp
;
long
currentSize
=
0
;
long
currentSize
=
0
;
int
chunkSize
=
0
;
int
chunkSize
=
0
;
...
@@ -379,7 +379,7 @@ public class ArchiveToolStore {
...
@@ -379,7 +379,7 @@ public class ArchiveToolStore {
}
}
}
}
fileId
++;
fileId
++;
}
}
storeTemp
.
commit
();
storeTemp
.
commit
();
}
}
...
@@ -450,7 +450,7 @@ public class ArchiveToolStore {
...
@@ -450,7 +450,7 @@ public class ArchiveToolStore {
}
}
currentSize
++;
currentSize
++;
printProgress
(
50
,
100
,
currentSize
,
totalSize
);
printProgress
(
50
,
100
,
currentSize
,
totalSize
);
}
}
for
(
Entry
<
String
,
int
[]>
e
:
files
.
entrySet
())
{
for
(
Entry
<
String
,
int
[]>
e
:
files
.
entrySet
())
{
String
f
=
targetDir
+
"/"
+
e
.
getKey
();
String
f
=
targetDir
+
"/"
+
e
.
getKey
();
int
[]
keys
=
e
.
getValue
();
int
[]
keys
=
e
.
getValue
();
...
@@ -464,19 +464,19 @@ public class ArchiveToolStore {
...
@@ -464,19 +464,19 @@ public class ArchiveToolStore {
}
}
new
FileOutputStream
(
f
).
close
();
new
FileOutputStream
(
f
).
close
();
}
}
}
}
if
(
file
!=
null
)
{
if
(
file
!=
null
)
{
file
.
close
();
file
.
close
();
}
}
store
.
close
();
store
.
close
();
storeTemp
.
close
();
storeTemp
.
close
();
FileUtils
.
delete
(
tempFileName
);
FileUtils
.
delete
(
tempFileName
);
System
.
out
.
println
();
System
.
out
.
println
();
printDone
();
printDone
();
}
}
private
int
getChunkLength
(
byte
[]
data
,
int
start
,
int
maxPos
)
{
private
int
getChunkLength
(
byte
[]
data
,
int
start
,
int
maxPos
)
{
int
minLen
=
4
*
1024
;
int
minLen
=
4
*
1024
;
int
mask
=
4
*
1024
-
1
;
int
mask
=
4
*
1024
-
1
;
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论