Added SharpCompress Zip archive implementation.
[mono.git] / mcs / class / System.IO.Compression / SharpCompress / Archive / IArchive.Extensions.cs
diff --git a/mcs/class/System.IO.Compression/SharpCompress/Archive/IArchive.Extensions.cs b/mcs/class/System.IO.Compression/SharpCompress/Archive/IArchive.Extensions.cs
new file mode 100644 (file)
index 0000000..a4b0124
--- /dev/null
@@ -0,0 +1,22 @@
+using System.Linq;
+using SharpCompress.Common;
+
+namespace SharpCompress.Archive
+{
+    internal static class IArchiveExtensions
+    {
+#if !PORTABLE && !NETFX_CORE
+        /// <summary>
+        /// Extract to specific directory, retaining filename
+        /// </summary>
+        public static void WriteToDirectory(this IArchive archive, string destinationDirectory,
+                                            ExtractOptions options = ExtractOptions.Overwrite)
+        {
+            foreach (IArchiveEntry entry in archive.Entries.Where(x => !x.IsDirectory))
+            {
+                entry.WriteToDirectory(destinationDirectory, options);
+            }
+        }
+#endif
+    }
+}
\ No newline at end of file