diff --git a/DATFromDir/7z/7za.dll b/DATFromDir/7z/7za.dll deleted file mode 100644 index 46f6e8e2..00000000 Binary files a/DATFromDir/7z/7za.dll and /dev/null differ diff --git a/DATFromDir/7z/7za.exe b/DATFromDir/7z/7za.exe deleted file mode 100644 index 710bda2f..00000000 Binary files a/DATFromDir/7z/7za.exe and /dev/null differ diff --git a/DATFromDir/7z/7zxa.dll b/DATFromDir/7z/7zxa.dll deleted file mode 100644 index afa96d4c..00000000 Binary files a/DATFromDir/7z/7zxa.dll and /dev/null differ diff --git a/DATFromDir/7z/License.txt b/DATFromDir/7z/License.txt deleted file mode 100644 index d1285cc6..00000000 --- a/DATFromDir/7z/License.txt +++ /dev/null @@ -1,31 +0,0 @@ - 7-Zip Extra - ~~~~~~~~~~~ - License for use and distribution - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Copyright (C) 1999-2015 Igor Pavlov. - - 7-Zip Extra files are under the GNU LGPL license. - - - Notes: - You can use 7-Zip Extra on any computer, including a computer in a commercial - organization. You don't need to register or pay for 7-Zip. - - - GNU LGPL information - -------------------- - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You can receive a copy of the GNU Lesser General Public License from - http://www.gnu.org/ - diff --git a/DATFromDir/7z/history.txt b/DATFromDir/7z/history.txt deleted file mode 100644 index fe8fb9d8..00000000 --- a/DATFromDir/7z/history.txt +++ /dev/null @@ -1,77 +0,0 @@ -7-Zip Extra history -------------------- - -9.35 beta 2014-12-07 ------------------------------- - - SFX modules were moved to LZMA SDK package. - - -9.34 alpha 2014-06-22 ------------------------------- - - Minimum supported system now is Windows 2000 for EXE and DLL files. - - all EXE and DLL files use msvcrt.dll. - - 7zr.exe now support AES encryption. - - -9.18 2010-11-02 ------------------------------- - - New small SFX module for installers. - - -9.17 2010-10-04 ------------------------------- - - New 7-Zip plugin for FAR Manager x64. - - -9.10 2009-12-30 ------------------------------- - - 7-Zip for installers now supports LZMA2. - - -9.09 2009-12-12 ------------------------------- - - LZMA2 compression method support. - - Some bugs were fixed. - - -4.65 2009-02-03 ------------------------------- - - Some bugs were fixed. - - -4.38 beta 2006-04-13 ------------------------------- - - SFX for installers now supports new properties in config file: - Progress, Directory, ExecuteFile, ExecuteParameters. - - -4.34 beta 2006-02-27 ------------------------------- - - ISetProperties::SetProperties: - it's possible to specify desirable number of CPU threads: - PROPVARIANT: name=L"mt", vt = VT_UI4, ulVal = NumberOfThreads - If "mt" is not defined, 7za.dll will check number of processors in system to set - number of desirable threads. - Now 7za.dll can use: - 2 threads for LZMA compressing - N threads for BZip2 compressing - 4 threads for BZip2 decompressing - Other codecs use only one thread. - Note: 7za.dll can use additional "small" threads with low CPU load. - - It's possible to call ISetProperties::SetProperties to specify "mt" property for decoder. - - -4.33 beta 2006-02-05 ------------------------------- - - Compressing speed and Memory requirements were increased. - Default dictionary size was increased: Fastest: 64 KB, Fast: 1 MB, - Normal: 4 MB, Max: 16 MB, Ultra: 64 MB. - - 7z/LZMA now can use only these match finders: HC4, BT2, BT3, BT4 - - -4.27 2005-09-21 ------------------------------- - - Some GUIDs/interfaces were changed. - IStream.h: - ISequentialInStream::Read now works as old ReadPart - ISequentialOutStream::Write now works as old WritePart diff --git a/DATFromDir/7z/readme.txt b/DATFromDir/7z/readme.txt deleted file mode 100644 index c274630a..00000000 --- a/DATFromDir/7z/readme.txt +++ /dev/null @@ -1,124 +0,0 @@ -7-Zip Extra 15.14 ------------------ - -7-Zip Extra is package of extra modules of 7-Zip. - -7-Zip Copyright (C) 1999-2015 Igor Pavlov. - -7-Zip is free software. Read License.txt for more information about license. - -Source code of binaries can be found at: - http://www.7-zip.org/ - -This package contains the following files: - -7za.exe - standalone console version of 7-Zip with reduced formats support. -7za.dll - library for working with 7z archives -7zxa.dll - library for extracting from 7z archives -License.txt - license information -readme.txt - this file - -Far\ - plugin for Far Manager -x64\ - binaries for x64 - - -All 32-bit binaries can work in: - Windows 2000 / 2003 / 2008 / XP / Vista / 7 / 8 / 10 - and in any Windows x64 version with WoW64 support. -All x64 binaries can work in any Windows x64 version. - -All binaries use msvcrt.dll. - -7za.exe -------- - -7za.exe - is a standalone console version of 7-Zip with reduced formats support. - - Extra: 7za.exe : support for only some formats of 7-Zip. - 7-Zip: 7z.exe with 7z.dll : support for all formats of 7-Zip. - -7za.exe and 7z.exe from 7-Zip have same command line interface. -7za.exe doesn't use external DLL files. - -You can read Help File (7-zip.chm) from 7-Zip package for description -of all commands and switches for 7za.exe and 7z.exe. - -7za.exe features: - - - High compression ratio in 7z format - - Supported formats: - - Packing / unpacking: 7z, xz, ZIP, GZIP, BZIP2 and TAR - - Unpacking only: Z, lzma, CAB. - - Highest compression ratio for ZIP and GZIP formats. - - Fast compression and decompression - - Strong AES-256 encryption in 7z and ZIP formats. - -Note: LZMA SDK contains 7zr.exe - more reduced version of 7za.exe. -But you can use 7zr.exe as "public domain" code. - - - -DLL files ---------- - -7za.dll and 7zxa.dll are reduced versions of 7z.dll from 7-Zip. -7za.dll and 7zxa.dll support only 7z format. -Note: 7z.dll is main DLL file that works with all archive types in 7-Zip. - -7za.dll and 7zxa.dll support the following decoding methods: - - LZMA, LZMA2, PPMD, BCJ, BCJ2, COPY, 7zAES, BZip2, Deflate. - -7za.dll also supports 7z encoding with the following encoding methods: - - LZMA, LZMA2, PPMD, BCJ, BCJ2, COPY, 7zAES. - -7za.dll and 7zxa.dll work via COM interfaces. -But these DLLs don't use standard COM interfaces for objects creating. - -Look also example code that calls DLL functions (in source code of 7-Zip): - - 7zip\UI\Client7z - -Another example of binary that uses these interface is 7-Zip itself. -The following binaries from 7-Zip use 7z.dll: - - 7z.exe (console version) - - 7zG.exe (GUI version) - - 7zFM.exe (7-Zip File Manager) - -Note: The source code of LZMA SDK also contains the code for similar DLLs -(DLLs without BZip2, Deflate support). And these files from LZMA SDK can be -used as "public domain" code. If you use LZMA SDK files, you don't need to -follow GNU LGPL rules, if you want to change the code. - - - - -License FAQ ------------ - -Can I use the EXE or DLL files from 7-Zip in a commercial application? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Yes, but you are required to specify in documentation for your application: - (1) that you used parts of the 7-Zip program, - (2) that 7-Zip is licensed under the GNU LGPL license and - (3) you must give a link to www.7-zip.org, where the source code can be found. - - -Can I use the source code of 7-Zip in a commercial application? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Since 7-Zip is licensed under the GNU LGPL you must follow the rules of that license. -In brief, it means that any LGPL'ed code must remain licensed under the LGPL. -For instance, you can change the code from 7-Zip or write a wrapper for some -code from 7-Zip and compile it into a DLL; but, the source code of that DLL -(including your modifications / additions / wrapper) must be licensed under -the LGPL or GPL. -Any other code in your application can be licensed as you wish. This scheme allows -users and developers to change LGPL'ed code and recompile that DLL. That is the -idea of free software. Read more here: http://www.gnu.org/. - - - -Note: You can look also LZMA SDK, which is available under a more liberal license. - - ---- -End of document diff --git a/DATFromDir/7z/x64/7za.dll b/DATFromDir/7z/x64/7za.dll deleted file mode 100644 index 444c4ffc..00000000 Binary files a/DATFromDir/7z/x64/7za.dll and /dev/null differ diff --git a/DATFromDir/7z/x64/7za.exe b/DATFromDir/7z/x64/7za.exe deleted file mode 100644 index 881b7dd9..00000000 Binary files a/DATFromDir/7z/x64/7za.exe and /dev/null differ diff --git a/DATFromDir/7z/x64/7zxa.dll b/DATFromDir/7z/x64/7zxa.dll deleted file mode 100644 index f72ab631..00000000 Binary files a/DATFromDir/7z/x64/7zxa.dll and /dev/null differ diff --git a/DATFromDir/DATFromDir.cs b/DATFromDir/DATFromDir.cs index 7f2c543f..992f62d0 100644 --- a/DATFromDir/DATFromDir.cs +++ b/DATFromDir/DATFromDir.cs @@ -9,6 +9,9 @@ using System.Web; //using SabreTools.Helper; using DamienG.Security.Cryptography; +using SharpCompress.Archive; +using SharpCompress.Common; +using SharpCompress.Reader; namespace SabreTools { @@ -130,16 +133,6 @@ namespace SabreTools // Set 7za required variables _isMono = (Type.GetType("Mono.Runtime") != null); - _7zPath = Environment.CurrentDirectory + Path.DirectorySeparatorChar + "7z" + (Environment.Is64BitOperatingSystem ? Path.DirectorySeparatorChar + "x64" : "") + Path.DirectorySeparatorChar; - _psi = new ProcessStartInfo - { - Arguments = "", - FileName = (_isMono ? "7za" : _7zPath + "7za.exe"), - //FileName = (Build.MonoEnvironment ? "mono" : SevenZipPath + "7za.exe"), - RedirectStandardError = true, - RedirectStandardOutput = true, - UseShellExecute = false, - }; // Create an output array for all found items _roms = new List(); @@ -149,9 +142,7 @@ namespace SabreTools { // Set local paths and vars _tempDir = Environment.CurrentDirectory + Path.DirectorySeparatorChar + "temp" + DateTime.Now.ToString("yyyyMMddHHmmss") + Path.DirectorySeparatorChar; - _basePath = (File.Exists(path) ? path : path + Path.DirectorySeparatorChar); - _baseExtract = "x -o\"" + _tempDir + "\""; - //_baseExtract = (Build.MonoEnvironment ? SevenZipPath + "7za.exe " : "") + "x -o\"" + _tempDir + "\""; + _basePath = (File.Exists(path) ? path : path + Path.DirectorySeparatorChar); // This is where the main loop would go if (File.Exists(_basePath)) @@ -316,17 +307,16 @@ Options: bool encounteredErrors = true; if (!_allfiles) { - _psi.Arguments = _baseExtract + " \"" + item + "\""; - Process zip = Process.Start(_psi); - zip.WaitForExit(); - - string stdout = zip.StandardOutput.ReadToEnd(); - string stderr = zip.StandardError.ReadToEnd(); - - Console.WriteLine("7z stdout: " + stdout + Environment.NewLine); - Console.WriteLine("7z stderr: " + stderr + Environment.NewLine); - - encounteredErrors = stderr.Contains("ERROR"); + try + { + IArchive archive = ArchiveFactory.Open(item); + IReader reader = archive.ExtractAllEntries(); + reader.WriteAllToDirectory(_tempDir, ExtractOptions.ExtractFullPath); + } + catch (InvalidOperationException) + { + encounteredErrors = true; + } } // Get a list of files including size and hashes diff --git a/DATFromDir/DATFromDir.csproj b/DATFromDir/DATFromDir.csproj index 6c17e91e..ce261869 100644 --- a/DATFromDir/DATFromDir.csproj +++ b/DATFromDir/DATFromDir.csproj @@ -33,6 +33,10 @@ 4 + + ..\packages\sharpcompress.0.11.6\lib\net40\SharpCompress.dll + True + @@ -50,35 +54,7 @@ - - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - +