@@ -129,6 +129,36 @@ async Task<bool> DecompressAsyncWithSevenZip(string archiveFilePath, string dest
129129 fsProgress . TotalSize = zipFile . ArchiveFileData . Select ( x => ( long ) x . Size ) . Sum ( ) ;
130130 fsProgress . Report ( ) ;
131131
132+ zipFile . Extracting += ( s , e ) =>
133+ {
134+ if ( fsProgress . TotalSize > 0 )
135+ fsProgress . Report ( e . BytesProcessed / ( double ) fsProgress . TotalSize * 100 ) ;
136+ } ;
137+
138+ zipFile . FileExtractionStarted += ( s , e ) =>
139+ {
140+ if ( statusCard . CancellationToken . IsCancellationRequested )
141+ e . Cancel = true ;
142+
143+ if ( ! e . FileInfo . IsDirectory )
144+ {
145+ ThreadingService . ExecuteOnUiThreadAsync ( ( ) =>
146+ {
147+ fsProgress . FileName = e . FileInfo . FileName ;
148+ fsProgress . Report ( ) ;
149+ } ) ;
150+ }
151+ } ;
152+
153+ zipFile . FileExtractionFinished += ( s , e ) =>
154+ {
155+ if ( ! e . FileInfo . IsDirectory )
156+ {
157+ fsProgress . AddProcessedItemsCount ( 1 ) ;
158+ fsProgress . Report ( ) ;
159+ }
160+ } ;
161+
132162 bool isSuccess = false ;
133163
134164 try
@@ -168,35 +198,6 @@ async Task<bool> DecompressAsyncWithSevenZip(string archiveFilePath, string dest
168198 }
169199 }
170200
171- zipFile . Extracting += ( s , e ) =>
172- {
173- if ( fsProgress . TotalSize > 0 )
174- fsProgress . Report ( e . BytesProcessed / ( double ) fsProgress . TotalSize * 100 ) ;
175- } ;
176-
177- zipFile . FileExtractionStarted += ( s , e ) =>
178- {
179- if ( statusCard . CancellationToken . IsCancellationRequested )
180- e . Cancel = true ;
181-
182- if ( ! e . FileInfo . IsDirectory )
183- {
184- ThreadingService . ExecuteOnUiThreadAsync ( ( ) =>
185- {
186- fsProgress . FileName = e . FileInfo . FileName ;
187- fsProgress . Report ( ) ;
188- } ) ;
189- }
190- } ;
191-
192- zipFile . FileExtractionFinished += ( s , e ) =>
193- {
194- if ( ! e . FileInfo . IsDirectory )
195- {
196- fsProgress . AddProcessedItemsCount ( 1 ) ;
197- fsProgress . Report ( ) ;
198- }
199- } ;
200201 return isSuccess ;
201202 }
202203
0 commit comments