No overwrite option in ZipFile.ExtractToDirectory in unity 2020.3.34f1 with .net standard 2.0,ExtractToDirectory with overwrite argument not available in unity.

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.