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); } } }
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); } } }
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; }