Exemple #1
0
        private void UnzipFile(ref string psFile)
        {
            try
            {
                this.objLog.GravarLog(Log.TypeMessage.Message, "Unziping file " + psFile);

                string zipFile     = Path.Combine(this.sFilesPath, psFile);
                string unzipedFile = Path.Combine(this.sFilesPath, Path.GetFileNameWithoutExtension(psFile));
                psFile = Path.GetFileNameWithoutExtension(psFile) + ".sta";
                string stafile = Path.Combine(this.sFilesPath, psFile);

                using (SevenZipArchive archive = new SevenZipArchive(zipFile, ArchiveFormat.Zip))//TODO mudar o tipo de zip para Z
                {
                    archive.ExtractAll(this.sFilesPath);
                }

                File.Copy(unzipedFile, stafile, true);
                File.Delete(unzipedFile);
                File.Delete(zipFile);

                this.objLog.GravarLog(Log.TypeMessage.Success, "Unziped file " + psFile);
            }
            catch (Exception ex)
            {
                this.objLog.GravarLog(Log.TypeMessage.Error, ex.Message + " | " + ex.StackTrace);
            }
        }
Exemple #2
0
        private static void ExtractNPM(string fileName, string targetFolder)
        {
            Directory.CreateDirectory(targetFolder);

            using (SevenZipArchive archive = new SevenZipArchive(fileName))
            {
                archive.ExtractAll(targetFolder, ExtractOptions.OverwriteExistingFiles);
            }

            Directory.Move(Path.Combine(targetFolder, "package"), Path.Combine(targetFolder, "npm"));
        }
Exemple #3
0
        private static string SaveAndExtractPackage(IDictionary<string, object> meta)
        {
            var pkgName = (string)meta["name"];
            var destPath = Path.Combine(ModulesDir, pkgName);
            var url = (string)((IDictionary<string, object>)meta["dist"])["tarball"];
            var urlSplit = url.Split('/');
            var filename = urlSplit[urlSplit.Length - 1];
            var tmpFilePath = Path.Combine(TempDir, filename);
            if (File.Exists(tmpFilePath)) // make sure we don't re-download and reinstall anything
                return destPath;
            Console.WriteLine("Installing {0} into {1} ...", url, destPath);
            CleanUpDir(destPath);
            if (Directory.Exists(destPath))
                Directory.Delete(destPath, true);
            if (!Directory.Exists(TempDir))
                Directory.CreateDirectory(TempDir);
            var tempPkgDir = Path.Combine(TempDir, pkgName);
            if (!Directory.Exists(tempPkgDir))
                Directory.CreateDirectory(tempPkgDir);

            new WebClient().DownloadFile(url, tmpFilePath);

            var workingDir = Environment.CurrentDirectory;
            var tarFileName = Path.Combine(workingDir, tmpFilePath);
            Environment.CurrentDirectory = tempPkgDir;

            using (SevenZipArchive archive = new SevenZipArchive(tarFileName))
            {
                archive.ExtractAll(".", ExtractOptions.OverwriteExistingFiles);
            }

            Environment.CurrentDirectory = workingDir;
            // getting error when doing move, so copy recursively instead
            CopyDirectory(Path.Combine(tempPkgDir, "package"), destPath, true);
            return destPath;
        }