예제 #1
0
파일: ZipMgr.cs 프로젝트: moto2002/Hunter
        public void UnZip(string zipFilePath, string outDirPath, OnZipFinished finished, OnZipError error, OnZipProgress progress)
        {
            ZipWorker worker = new ZipWorker(zipFilePath, outDirPath, finished, error, progress);

            worker.Start();
            m_ZipWorkerList.Add(worker);
        }
예제 #2
0
        private void Dispose(bool disposing)
        {
            // Check to see if Dispose has already been called.
            if (!disposed)
            {
                if (disposing)
                {
                    if (_zipWorker != null)
                    {
                        _zipWorker.Dispose();
                    }
                    if (_xmlReader != null)
                    {
                        _xmlReader.Close();
                    }
                    if (_sheetStream != null)
                    {
                        _sheetStream.Close();
                    }
                }

                _zipWorker   = null;
                _xmlReader   = null;
                _sheetStream = null;

                _workbook         = null;
                _cellsValues      = null;
                _savedCellsValues = null;

                disposed = true;
            }
        }
    public static bool ShrinkSymbols(string location, AndroidArchitecture supportedAndroidArchitecture = AndroidArchitecture.All)
    {
        if (string.IsNullOrEmpty(location) || File.Exists(location) == false)
        {
            return(false);
        }

        var targetDirectory  = Path.GetDirectoryName(location);
        var intermediatePath = Path.Combine(targetDirectory, IntermediatePathName);
        var newZip           = Path.Combine(targetDirectory, string.Format(NewDebugSymbolsNameTemplate, Path.GetFileNameWithoutExtension(location)));

        EditorPrefs.SetString(LastSymbolToShrinkLocation, targetDirectory);
        FileCommand.Cleanup(intermediatePath);
        ZipWorker.Unzip(location, intermediatePath);

        EditorUtility.DisplayProgressBar("Shrinking symbols", "Deleting/Renaming/Compressing symbol files", 0.5f);

        //remove unsupported AndroidArchitecture
        RemoveUnsupportedAndroidArchitecture(intermediatePath, supportedAndroidArchitecture);

        FileCommand.Cleanup(newZip);

        CleanUpDebugFiles(intermediatePath);

        ZipWorker.CreateZip(newZip, intermediatePath);

        EditorUtility.ClearProgressBar();

        FileCommand.Cleanup(intermediatePath);

        Debug.Log($"New small symbol package: {newZip}");

        return(true);
    }
예제 #4
0
        public ExcelOpenXmlReader(Stream stream)
        {
            Document = new ZipWorker(stream);
            Workbook = new XlsxWorkbook(Document);

            // By default, the data reader is positioned on the first result.
            Reset();
        }
예제 #5
0
        public override void Close()
        {
            base.Close();

            Document?.Dispose();
            Workbook = null;
            Document = null;
        }
예제 #6
0
        public void Initialize(Stream fileStream)
        {
            _zipWorker = new ZipWorker();
            _zipWorker.Extract(fileStream);

            if (!_zipWorker.IsValid)
            {
                _isValid          = false;
                _exceptionMessage = _zipWorker.ExceptionMessage;

                Close();

                return;
            }

            ReadGlobals();
        }
예제 #7
0
        public async Task InitializeAsync(System.IO.Stream fileStream)
        {
            _zipWorker = new ZipWorker(fileSystem, fileHelper);

            await _zipWorker.Extract(fileStream);

            if (!_zipWorker.IsValid)
            {
                _isValid          = false;
                _exceptionMessage = _zipWorker.ExceptionMessage;

                Close();

                return;
            }

            await ReadGlobalsAsync();
        }
예제 #8
0
        public void ZipWorker_Extract_Test()
        {
            var zipper = new ZipWorker();

            zipper.Extract(Helper.GetTestWorkbook("TestChess"));
            Assert.AreEqual(false, Directory.Exists(zipper.TempPath));
            Assert.AreEqual(false, zipper.IsValid);

            zipper.Extract(Helper.GetTestWorkbook("xTestOpenXml"));

            Assert.AreEqual(true, Directory.Exists(zipper.TempPath));
            Assert.AreEqual(true, zipper.IsValid);

            string tPath = zipper.TempPath;

            zipper.Dispose();

            Assert.AreEqual(false, Directory.Exists(tPath));
        }
		public void Initialize(Stream fileStream, bool closeOnFail)
		{
			_zipWorker = new ZipWorker();
			_zipWorker.Extract(fileStream);

			if (_zipWorker.IsValid)
			{
				ReadGlobals();
				fileStream.Close();
			}
			else
			{
				IsValid = false;
				ExceptionMessage = _zipWorker.ExceptionMessage;

				Close();
				if (closeOnFail) fileStream.Close();
			}
		}
예제 #10
0
        public void Initialize(Stream fileStream, bool closeOnFail)
        {
            _zipWorker = new ZipWorker();
            _zipWorker.Extract(fileStream);

            if (_zipWorker.IsValid)
            {
                ReadGlobals();
                fileStream.Close();
            }
            else
            {
                IsValid          = false;
                ExceptionMessage = _zipWorker.ExceptionMessage;

                Close();
                if (closeOnFail)
                {
                    fileStream.Close();
                }
            }
        }
예제 #11
0
        public void ZipWorker_Extract_Test()
        {
            var zipper = new ZipWorker(FileSystem.Current, new FileHelper());

            //this first one isn't a valid xlsx so we are expecting no side effects in the directory tree
            zipper.Extract(Helper.GetTestWorkbook("TestChess"));
            Assert.AreEqual(false, Directory.Exists(zipper.TempPath));
            Assert.AreEqual(false, zipper.IsValid);

            //this one is valid so we expect to find the files
            zipper.Extract(Helper.GetTestWorkbook("xTestOpenXml"));

            Assert.AreEqual(true, Directory.Exists(zipper.TempPath));
            Assert.AreEqual(true, zipper.IsValid);

            string tPath = zipper.TempPath;

            //make sure that dispose gets rid of the files
            zipper.Dispose();

            Assert.AreEqual(false, Directory.Exists(tPath));
        }
예제 #12
0
        private void Dispose(bool disposing)
        {
            // Check to see if Dispose has already been called.
            if (!_isDisposed)
            {
                if (disposing)
                {
                    if (_zipWorker != null) _zipWorker.Dispose();
                    if (_xmlReader != null) _xmlReader.Close();
                    if (_sheetStream != null) _sheetStream.Close();
                }

                _zipWorker = null;
                _xmlReader = null;
                _sheetStream = null;

                _workbook = null;
                _cellsValues = null;
                _savedCellsValues = null;

                _isDisposed = true;
            }
        }
예제 #13
0
 public void ZipWorkerTest(long count)
 {
     WriteTestData(count);
     var worker = new ZipWorker(_srcFilePath, _trgFilePath);
 }