@@ -53,7 +53,7 @@ internal async Task DownloadPackageAsync(JObject updatePackage, string expectedB
5353 try
5454 {
5555 // Unzip the downloaded file and then delete the zip
56- StorageFolder unzippedFolder = await GetUnzippedFolderAsync ( ) . ConfigureAwait ( false ) ;
56+ StorageFolder unzippedFolder = await CreateUnzippedFolderAsync ( ) . ConfigureAwait ( false ) ;
5757 ZipFile . ExtractToDirectory ( downloadFile . Path , unzippedFolder . Path ) ;
5858 await downloadFile . DeleteAsync ( ) . AsTask ( ) . ConfigureAwait ( false ) ;
5959
@@ -99,7 +99,6 @@ internal async Task DownloadPackageAsync(JObject updatePackage, string expectedB
9999 await downloadFile . MoveAsync ( newUpdateFolder ) . AsTask ( ) . ConfigureAwait ( false ) ;
100100 }
101101 /*TODO: ZipFile.ExtractToDirectory is not reliable and throws exceptions if:
102- - folder exists already
103102 - path is too long
104103 it needs to be handled
105104 */
@@ -278,9 +277,16 @@ private async Task<StorageFile> GetStatusFileAsync()
278277 return await codePushFolder . CreateFileAsync ( CodePushConstants . StatusFileName , CreationCollisionOption . OpenIfExists ) . AsTask ( ) . ConfigureAwait ( false ) ;
279278 }
280279
281- private async Task < StorageFolder > GetUnzippedFolderAsync ( )
280+ private async Task < StorageFolder > CreateUnzippedFolderAsync ( )
282281 {
283282 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+
284290 return await codePushFolder . CreateFolderAsync ( CodePushConstants . UnzippedFolderName , CreationCollisionOption . OpenIfExists ) . AsTask ( ) . ConfigureAwait ( false ) ;
285291 }
286292
0 commit comments