I am using unity 2020.3.34f1 with .net standard 2.0
here I find ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, Encoding entryNameEncoding);
where as on microsoft documentation for .net standard 2.0 ,
public static void ExtractToFile (this System.IO.Compression.ZipArchiveEntry source, string destinationFileName, bool overwrite);
exist.
I need this method with overwrite option.
,I am using unity 2020.3.34f1 and in System.IO.Compression.ZipFile have method
public static ZipArchive Open (string archiveFileName, ZipArchiveMode mode, Encoding entryNameEncoding);
where as in microsoft documentation
public static void ExtractToFile (this System.IO.Compression.ZipArchiveEntry source, string destinationFileName, bool overwrite);
is given.
I need function with overwrite option?
@anujroadrage - To my knowledge ExtractToDirectory method with the overwrite argument isn’t available in Unity 2020.3.34f1 with .NET Standard 2.0. You can work around this limitation by implementing a custom method to handle the extraction and overwrite process. Here’s an example of how you could do this:
Create a custom ExtractToDirectoryWithOverwrite method:
using System.IO;
using System.IO.Compression;
using System.Text;
public static class ZipFileExtensions
{
public static void ExtractToDirectoryWithOverwrite(string sourceArchiveFileName, string destinationDirectoryName, Encoding entryNameEncoding = null)
{
using (ZipArchive archive = ZipFile.Open(sourceArchiveFileName, ZipArchiveMode.Read, entryNameEncoding))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
string destinationPath = Path.Combine(destinationDirectoryName, entry.FullName);
string destinationDirectory = Path.GetDirectoryName(destinationPath);
if (!Directory.Exists(destinationDirectory))
{
Directory.CreateDirectory(destinationDirectory);
}
if (!string.IsNullOrEmpty(Path.GetFileName(destinationPath))) // Skip directories
{
entry.ExtractToFile(destinationPath, overwrite: true);
}
}
}
}
}
Now, you can use this custom method for extraction with overwrite functionality:
string sourceArchiveFileName = "path/to/your/zipfile.zip";
string destinationDirectoryName = "path/to/destination/directory";
ZipFileExtensions.ExtractToDirectoryWithOverwrite(sourceArchiveFileName, destinationDirectoryName);
This custom method will take care of creating directories and extracting files with the option to overwrite existing files.