コード例 #1
0
 private static void extractTarGz(string gzfile, string dstPath)
 {
     if (Directory.Exists(dstPath))
     {
         Directory.Delete(dstPath, true);
     }
     Tar.ExtractTarGz(gzfile, dstPath);
 }
コード例 #2
0
    private static void extractTarGz(string gzfile, string path)
    {
        string backupFolder   = Utils.PathCombine(path, "backup");
        string backupVSFolder = Utils.PathCombine(backupFolder, "UWPProjectTemplates");

        if (Directory.Exists(backupVSFolder))
        {
            Directory.Delete(backupVSFolder, true);
        }
        Tar.ExtractTarGz(gzfile, backupFolder);
    }
コード例 #3
0
ファイル: JavaTask.cs プロジェクト: briannosaurus/Aves
        private void ExtractToTarget(string path)
        {
            Log.Info("Extracting...");

            var tempFile = Path.GetTempFileName();

            File.Delete(tempFile);

            Directory.CreateDirectory(tempFile);
            var tempDir = tempFile;


            Log.Info($"Extracting '{path}'->'{tempDir}'");
            if (path.EndsWith(".zip"))
            {
                Log.Info("ExtractionMethod: ZIP");
                ZipFile.ExtractToDirectory(path, tempDir);
            }
            else if (path.EndsWith(".tar.gz"))
            {
                Log.Info("ExtractionMethod: TAR/GZ");
                Tar.ExtractTarGz(path, tempDir);
            }
            else
            {
                throw new InvalidOperationException("Unknown compression type");
            }

            List <Task> deleteTasks = new List <Task>
            {
                Task.Run(() =>
                {
                    Log.Info($"Deleting input/tempfile '{path}'");
                    File.Delete(path);
                    Log.Info($"Deleted '{path}'");
                })
            };

            var targetInfo = new DirectoryInfo(Config.DestinationSubDir);

            foreach (var dir in new DirectoryInfo(tempDir).GetDirectories())
            {
                Log.Info($"Moving internal (layer-1) directory '{dir}' into '{targetInfo}'");
                CopyFilesRecursively(dir, new DirectoryInfo(Config.DestinationSubDir));

                deleteTasks.Add(
                    Task.Run(() =>
                {
                    Log.Info($"Deleting internal folder '{dir.FullName}'");
                    Directory.Delete(dir.FullName, true);
                    Log.Info($"Deleted '{dir.FullName}'");
                })
                    );
            }

            Log.Info("Waiting for DeleteTasks");
            Task.WaitAll(deleteTasks.ToArray());
            Log.Info("All DeleteTasks finished");

            Log.Info($"Deleting tempfolder '{tempDir}'");
            Directory.Delete(tempDir, true);
            Log.Info($"Deleted '{tempDir}'");

            Log.Info("Extracting finished");
        }