ArchiveResult ITotalCommanderWcxPlugin.ProcessFile(IntPtr archive, ArchiveProcess operation, string filepath, string filename)
        {
            if (operation == ArchiveProcess.Skip)
            {
                return(ArchiveResult.Success);
            }

            var result = ArchiveResult.Default;
            IArchiveUnpacker unpacker;

            lock (unpackers)
            {
                unpackers.TryGetValue(archive, out unpacker);
            }
            if (unpacker != null)
            {
                var destfile = !string.IsNullOrEmpty(filename) ? Path.Combine(filepath, filename) : filename;
                if (operation == ArchiveProcess.Extract)
                {
                    unpacker.ExtractCurrentTo(destfile);
                }
                else if (operation == ArchiveProcess.Test)
                {
                    unpacker.TestCurrent(destfile);
                }
                result = ArchiveResult.Success;
            }
            return(result);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            string destination = @"D:\My Pictures\";
            string source      = @"C:\DCIM\Camera\";

            ArchiveProcess processor = new ArchiveProcess();

            //processor.ArchivePhotosBasedOnDays(source,destination,false);
            Console.Write("Done");
            Console.ReadLine();
        }
        ArchiveResult ITotalCommanderWcxPlugin.ProcessFile(IntPtr archive, ArchiveProcess operation, string filepath, string filename)
        {
            if (operation == ArchiveProcess.Skip) return ArchiveResult.Success;

            var result = ArchiveResult.Default;
            IArchiveUnpacker unpacker;
            lock (unpackers)
            {
                unpackers.TryGetValue(archive, out unpacker);
            }
            if (unpacker != null)
            {
                var destfile = !string.IsNullOrEmpty(filename) ? Path.Combine(filepath, filename) : filename;
                if (operation == ArchiveProcess.Extract)
                {
                    unpacker.ExtractCurrentTo(destfile);
                }
                else if (operation == ArchiveProcess.Test)
                {
                    unpacker.TestCurrent(destfile);
                }
                result = ArchiveResult.Success;
            }
            return result;
        }