@@ -53,7 +53,7 @@ internal async Task DownloadPackageAsync(JObject updatePackage, string expectedB
53
53
try
54
54
{
55
55
// Unzip the downloaded file and then delete the zip
56
- StorageFolder unzippedFolder = await GetUnzippedFolderAsync ( ) . ConfigureAwait ( false ) ;
56
+ StorageFolder unzippedFolder = await CreateUnzippedFolderAsync ( ) . ConfigureAwait ( false ) ;
57
57
ZipFile . ExtractToDirectory ( downloadFile . Path , unzippedFolder . Path ) ;
58
58
await downloadFile . DeleteAsync ( ) . AsTask ( ) . ConfigureAwait ( false ) ;
59
59
@@ -99,7 +99,6 @@ internal async Task DownloadPackageAsync(JObject updatePackage, string expectedB
99
99
await downloadFile . MoveAsync ( newUpdateFolder ) . AsTask ( ) . ConfigureAwait ( false ) ;
100
100
}
101
101
/*TODO: ZipFile.ExtractToDirectory is not reliable and throws exceptions if:
102
- - folder exists already
103
102
- path is too long
104
103
it needs to be handled
105
104
*/
@@ -278,9 +277,16 @@ private async Task<StorageFile> GetStatusFileAsync()
278
277
return await codePushFolder . CreateFileAsync ( CodePushConstants . StatusFileName , CreationCollisionOption . OpenIfExists ) . AsTask ( ) . ConfigureAwait ( false ) ;
279
278
}
280
279
281
- private async Task < StorageFolder > GetUnzippedFolderAsync ( )
280
+ private async Task < StorageFolder > CreateUnzippedFolderAsync ( )
282
281
{
283
282
StorageFolder codePushFolder = await GetCodePushFolderAsync ( ) . ConfigureAwait ( false ) ;
283
+ var unzippedFolder = await codePushFolder . TryGetItemAsync ( CodePushConstants . UnzippedFolderName ) . AsTask ( ) . ConfigureAwait ( false ) ;
284
+
285
+ if ( unzippedFolder != null )
286
+ {
287
+ await unzippedFolder . DeleteAsync ( ) ;
288
+ }
289
+
284
290
return await codePushFolder . CreateFolderAsync ( CodePushConstants . UnzippedFolderName , CreationCollisionOption . OpenIfExists ) . AsTask ( ) . ConfigureAwait ( false ) ;
285
291
}
286
292
0 commit comments