FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
TensorFlow.NET/src/TensorFlowNET.Keras/Utils/Compress.cs at master · MSavameri/TensorFlow.NET · GitHub
MSavameri
TensorFlow.NET
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
TensorFlow.NET
/
src
/
TensorFlowNET.Keras
/
Utils
/
Compress.cs
Copy path
More file actions
More file actions
Latest commit
History
History
History
105 lines (89 loc) · 3.9 KB
Breadcrumbs
TensorFlow.NET
/
src
/
TensorFlowNET.Keras
/
Utils
/
Compress.cs
Copy path
File metadata and controls
105 lines (89 loc) · 3.9 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*****************************************************************************
Copyright 2018 The TensorFlow.NET Authors. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
******************************************************************************/
using
ICSharpCode
.
SharpZipLib
.
Core
;
using
ICSharpCode
.
SharpZipLib
.
GZip
;
using
ICSharpCode
.
SharpZipLib
.
Tar
;
using
System
;
using
System
.
IO
;
using
System
.
IO
.
Compression
;
using
System
.
Linq
;
using
System
.
Threading
;
using
System
.
Threading
.
Tasks
;
namespace
Tensorflow
.
Keras
.
Utils
{
public
class
Compress
{
public
static
void
ExtractGZip
(
string
gzipFileName
,
string
targetDir
)
{
// Use a 4K buffer. Any larger is a waste.
byte
[
]
dataBuffer
=
new
byte
[
4096
]
;
using
(
System
.
IO
.
Stream
fs
=
new
FileStream
(
gzipFileName
,
FileMode
.
Open
,
FileAccess
.
Read
)
)
{
using
(
GZipInputStream
gzipStream
=
new
GZipInputStream
(
fs
)
)
{
// Change this to your needs
string
fnOut
=
Path
.
Combine
(
targetDir
,
Path
.
GetFileNameWithoutExtension
(
gzipFileName
)
)
;
using
(
FileStream
fsOut
=
File
.
Create
(
fnOut
)
)
{
StreamUtils
.
Copy
(
gzipStream
,
fsOut
,
dataBuffer
)
;
}
}
}
}
public
static
void
UnZip
(
String
gzArchiveName
,
String
destFolder
)
{
var
flag
=
gzArchiveName
.
Split
(
Path
.
DirectorySeparatorChar
)
.
Last
(
)
.
Split
(
'.'
)
.
First
(
)
+
".bin"
;
if
(
File
.
Exists
(
Path
.
Combine
(
destFolder
,
flag
)
)
)
return
;
var
destFileName
=
gzArchiveName
.
Replace
(
".zip"
,
string
.
Empty
)
;
if
(
File
.
Exists
(
destFileName
)
)
return
;
Binding
.
tf_output_redirect
.
WriteLine
(
$
"Extracting."
)
;
var
task
=
Task
.
Run
(
(
)
=>
{
ZipFile
.
ExtractToDirectory
(
gzArchiveName
,
destFolder
)
;
}
)
;
while
(
!
task
.
IsCompleted
)
{
Thread
.
Sleep
(
200
)
;
Binding
.
tf_output_redirect
.
Write
(
"."
)
;
}
File
.
Create
(
Path
.
Combine
(
destFolder
,
flag
)
)
;
Binding
.
tf_output_redirect
.
WriteLine
(
""
)
;
Binding
.
tf_output_redirect
.
WriteLine
(
"Extracting is completed."
)
;
}
public
static
void
ExtractTGZ
(
String
gzArchiveName
,
String
destFolder
)
{
var
flag
=
gzArchiveName
.
Split
(
Path
.
DirectorySeparatorChar
)
.
Last
(
)
.
Split
(
'.'
)
.
First
(
)
+
".bin"
;
if
(
File
.
Exists
(
Path
.
Combine
(
destFolder
,
flag
)
)
)
return
;
Binding
.
tf_output_redirect
.
WriteLine
(
$
"Extracting."
)
;
var
task
=
Task
.
Run
(
(
)
=>
{
using
(
var
inStream
=
File
.
OpenRead
(
gzArchiveName
)
)
{
using
(
var
gzipStream
=
new
GZipInputStream
(
inStream
)
)
{
using
(
TarArchive
tarArchive
=
TarArchive
.
CreateInputTarArchive
(
gzipStream
)
)
tarArchive
.
ExtractContents
(
destFolder
)
;
}
}
}
)
;
while
(
!
task
.
IsCompleted
)
{
Thread
.
Sleep
(
200
)
;
Binding
.
tf_output_redirect
.
Write
(
"."
)
;
}
File
.
Create
(
Path
.
Combine
(
destFolder
,
flag
)
)
;
Binding
.
tf_output_redirect
.
WriteLine
(
""
)
;
Binding
.
tf_output_redirect
.
WriteLine
(
"Extracting is completed."
)
;
}
}
}
Back
|
FazBrowse Home
|
New Git URL