2015-11-19 11 views
1

У меня возникла проблема с запуском существующих каталогов. Когда я пытаюсь сжать существующий каталог, я всегда получаю пустой почтовый файл. Мой код основан на этом примере от MSDN. При отладке приложения исключений нет.Универсальная платформа Windows ZipFile.CreateFromDirectory создает пустой ZIP-файл

Мой код:

private async void PickFolderToCompressButton_Click(object sender, RoutedEventArgs e) 
{ 
    // Clear previous returned folder name, if it exists, between iterations of this scenario 
    OutputTextBlock.Text = ""; 

    FolderPicker folderPicker = new FolderPicker(); 
    folderPicker.SuggestedStartLocation = PickerLocationId.Desktop; 
    folderPicker.FileTypeFilter.Add(".dll"); 
    folderPicker.FileTypeFilter.Add(".json"); 
    folderPicker.FileTypeFilter.Add(".xml"); 
    folderPicker.FileTypeFilter.Add(".pdb"); 
    StorageFolder folder = await folderPicker.PickSingleFolderAsync(); 
    if (folder != null) 
    { 
     // Application now has read/write access to all contents in the picked folder (including other sub-folder contents) 
     StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", folder); 
     OutputTextBlock.Text = $"Picked folder: {folder.Name}"; 

     var files = await folder.GetFilesAsync(); 
     foreach (var file in files) 
     { 
      OutputTextBlock.Text += $"\n {file.Name}"; 
     } 

     await Task.Run(() => 
     { 
      try 
      { 
       ZipFile.CreateFromDirectory(folder.Path, $"{folder.Path}\\{Guid.NewGuid()}.zip", 
        CompressionLevel.NoCompression, true); 
       Debug.WriteLine("folder zipped"); 
      } 
      catch (Exception w) 
      { 
       Debug.WriteLine(w); 
      } 
     }); 
    } 
    else 
    { 
     OutputTextBlock.Text = "Operation cancelled."; 
    } 
} 

Файл Zip создан, но он всегда пуст. В исходной папке много файлов.

ответ

1

Мы обнаружили, что это может быть вызвано внедрением .NET Core для файловой системы api.

Обходное решение заключается в том, чтобы перенести вашу папку в папку локальных данных приложения времени выполнения Windows, и чтение из этой папки может привести к ожидаемому результату при использовании класса zipfile.

Вы можете сослаться на a related post на MSDN.

+0

Спасибо за ответ! Я думал, что это может быть ошибкой в ​​.NET Core. – patryk9200

Смежные вопросы