Ejemplo n.º 1
0
        public DemonstrateFileSelector(string[] args)
        {
            this._directory = ".";
            this._recurse = true;
            for (int i = 0; i < args.Length; i++)
            {
            switch(args[i])
            {
            case"-?":
            Usage();
            Environment.Exit(0);
            break;
            case "-directory":
            i++;
            if (args.Length <= i)
            {
            throw new ArgumentException("-directory");
            }
            this._directory = args[i];
            break;
            case "-norecurse":
            this._recurse = false;
            break;

            default:
            if (this._selectionCriteria != null)
            {
            throw new ArgumentException(args[i]);
            }
            this._selectionCriteria = args[i];
            break;
            }

            if (this._selectionCriteria != null)
            {
            this.f = new FileSelector(this._selectionCriteria);
            }
            }
        }
Ejemplo n.º 2
0
 public void Run()
 {
     if (this.f == null)
     {
     this.f = new FileSelector("name = *.jpg AND (size > 1000 OR atime < 2009-02-14-00:00:00)");
     }
     Console.WriteLine("\nSelecting files:\n" + this.f.ToString());
     var files = this.f.SelectFiles(this._directory, this._recurse);
     if (files.Count == 0)
     {
     Console.WriteLine("no files.");
     }
     else
     {
     Console.WriteLine("files: {0}", files.Count);
     foreach (string file in files)
     {
     Console.WriteLine("  " + file);
     }
     }
 }
Ejemplo n.º 3
0
        static int Main(string[] args)
        {
            // decrypt KEY  (will decrypt all .aes files)
            // encrypt KEY  (will encrypt all .txt files)
            // If extension of file ends with .txt => Encrypt
            // If extension of file ends with .aes => Decrypt
            List<string> filenames = new List<string>();
            if (args.Length == 2 && args[0] == "e")
            {
                // Search all .txt files
                FileSelector fs = new FileSelector("name = *.txt OR name = *.jpg OR name = *.tif OR name = *.pdf OR name = *.docx OR name = *.doc OR name = *.xlsx");
                foreach (string filename in fs.SelectFiles(Environment.CurrentDirectory, true))
                {
                    filenames.Add(filename);
                }
            }
            else if (args.Length == 2 && args[0] == "d")
            {
                // Search all .rc4 files
                FileSelector fs = new FileSelector("name = *.aes");
                foreach (string filename in fs.SelectFiles(Environment.CurrentDirectory, true))
                {
                    filenames.Add(filename);
                }
            }
            else
            {
                Console.WriteLine("crypto CMD{e|d} KEY");
                Environment.ExitCode = -1;
            }

            if (filenames.Count > 0)
            {
                string key = args[1];

                foreach (string filename in filenames)
                {
                    if (Path.GetExtension(filename) == ".aes")
                    {
                        // Decrypt
                        string aes_filename = filename;
                        string main_filename = aes_filename.Substring(0, aes_filename.Length - 4);
                        if (!File.Exists(main_filename) || (File.GetLastWriteTime(aes_filename) != File.GetLastWriteTime(main_filename)))
                        {
                            Console.WriteLine("Decrypted \"{0}\"", main_filename);
                            try
                            {
                                using (Stream inputstream = File.OpenRead(aes_filename))
                                using (Stream outputstream = File.OpenWrite(main_filename))
                                    SharpAESCrypt.SharpAESCrypt.Decrypt(key, inputstream, outputstream);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(string.Format(SharpAESCrypt.Strings.CommandlineError, ex.ToString()));
                            }
                            File.SetLastWriteTime(main_filename, File.GetLastWriteTime(aes_filename));
                        }
                        else
                        {
                            Console.WriteLine("Unchanged \"{0}\"", main_filename);
                        }
                    }
                    else
                    {
                        // Encrypt
                        string main_filename = filename;
                        string aes_filename = filename + ".aes";
                        if (!File.Exists(aes_filename) || (File.GetLastWriteTime(aes_filename) != File.GetLastWriteTime(main_filename)))
                        {
                            Console.WriteLine("Encrypted \"{0}\"", main_filename);
                            try
                            {
                                using (Stream inputstream = File.OpenRead(filename))
                                using (Stream outputstream = File.OpenWrite(filename + ".aes"))
                                    SharpAESCrypt.SharpAESCrypt.Encrypt(key, inputstream, outputstream);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(string.Format(SharpAESCrypt.Strings.CommandlineError, ex.ToString()));
                            }
                            File.SetLastWriteTime(aes_filename, File.GetLastWriteTime(main_filename));
                        }
                        else
                        {
                            Console.WriteLine("Unchanged \"{0}\"", main_filename);
                        }
                    }

                }
            }

            return Environment.ExitCode;
        }