static void Main(string[] args) { //Load all the commands in args[] into a list so that we can add to them later if we get passed a filename, foreach (String s1 in args) { commands.Add(s1); } string s = ""; if (args.Length > 0) { while (commands.Count > 0) { s = commands[0]; s.Trim(); commands.RemoveAt(0); switch (ParseMode) { //deafault mode case parseModes.Default: switch (s) { case "-x": ParseMode = parseModes.exclude; break; case "-nr": FindLargestFolder.recurse = false; break; case "-?": Help helpwindow = new Help( "Usage: \n" + "<dir>" + "\t\t" + "Search direct subdirectories of directory" + "\n" + "-c" + "\t\t" + "Choose folder after search" + "\n" + "-x <dir>" + "\t\t" + "Exclude directory" + "\n" + "-nr" + "\t\t" + "Disable recursing directories" + "\n" + "-l <filename>" + "\t" + "Load a set of commands from a file" + "\n" + "-f <foldername>" + "\t" + "Add a single folder to the list (not subdirectories)" + "\n" + "-cachestats" + "\t\t" + "Show cache / pick stats" + "\n" + "-cache <min> <max>" + "\t" + "Cache file access for min < x < max hours" + "\n" + "-cachefolder <directory>" + "\t" + "Folder where cache data should be written" + "\n" + "-cacheignore <directory>" + "\t\t" + "Never cache this folder" ); Application.Run(helpwindow); PickMode = pickModes.noPick; break; case "-c": FindLargestFolder.showChooser = true; break; case "-l": ParseMode = parseModes.loadfile; break; case "-f": ParseMode = parseModes.addSingleFolder; break; case "-cachestats": FindLargestFolder.showCacheStats = true; break; case "-cache": FindLargestFolder.useCache = true; ParseMode = parseModes.cache_min; break; case "-cachefolder": ParseMode = parseModes.cachefolder; break; case "-cacheignore": ParseMode = parseModes.cacheignore; break; default: FindLargestFolder.addPath(s); break; } break; //exclude directory mode case parseModes.exclude: ParseMode = parseModes.Default; FindLargestFolder.excludePath(s); break; case parseModes.loadfile: //load a file one row at a time into args[] ParseMode = parseModes.Default; StreamReader f = new StreamReader(s); string line; while ((line = f.ReadLine()) != null) { commands.Add(line); } break; case parseModes.addSingleFolder: //load a single folder straght into the list to check. FindLargestFolder.addDirectoryDirectly(s); break; case parseModes.cachefolder: ParseMode = parseModes.Default; FindLargestFolder.cachefolder = s; break; case parseModes.cacheignore: ParseMode = parseModes.Default; FindLargestFolder.cacheIgnoreList.Add(s); break; case parseModes.cache_min: ParseMode = parseModes.cache_max; FindLargestFolder.cacheHoursMin = Convert.ToInt32(s); break; case parseModes.cache_max: ParseMode = parseModes.Default; FindLargestFolder.cacheHoursMax = Convert.ToInt32(s); break; } } #region pickModes //keep the pick modes as if we selected pickmode.none we dont want to actually do anything here. switch (PickMode) { case pickModes.single: FindLargestFolder.scanDirectories(); if (FindLargestFolder.showChooser) { FindLargestFolder.pickChoice(); } else { FindLargestFolder.pickLargest(); } break; } #endregion } //save the cache FindLargestFolder.saveCache(); //else //{ // Application.EnableVisualStyles(); // Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new Monitor()); //} }
static void Main(string[] args) { try { //Load all the commands in args[] into a list so that we can add to them later if we get passed a filename, foreach (String s1 in args) { commands.Add(s1); } string s = ""; string lastext = ""; if (args.Length > 0) { while (commands.Count > 0) { s = commands[0]; s.Trim(); commands.RemoveAt(0); switch (ParseMode) { //deafault mode case parseModes.Default: switch (s) { case "-x": ParseMode = parseModes.exclude; break; case "-nr": PickRandomFile.recurse = false; break; case "-1": PickRandomFile.firstfileonly = true; break; case "-shuffle": PickRandomFile.shuffle = true; break; case "-stat": PickRandomFile.showStats = true; break; case "-i": PickRandomFile.ignoreMissingFolders = true; break; case "-f": ParseMode = parseModes.filetype; PickRandomFile.usingFileTypes = true; break; case "-?": Help helpwindow = new Help( "Usage: \n" + "<dir>" + "\t\t" + "Include directory" + "\n" + "-c" + "\t\t" + "Choose file after search" + "\n" + "-x <dir>" + "\t\t" + "Exclude directory" + "\n" + "-nr" + "\t\t" + "Disable recursing directories" + "\n" + "-f <list>" + "\t\t" + "Comma separated list of filetypes (e.g. .avi,.mpg,.mpeg)" + "\n" + "-r" + "\t\t" + "Repeat pick files " + "\n" + "-rc <cnt>" + "\t\t" + "How many times to repeat the pick operation (infinite if not specified)" + "\n" + "-rd <dur>" + "\t\t" + "Duration between pick attempts (seconds)" + "\n" + "-stat" + "\t\t" + "Show stats (for certain modes) in the window" + "\n" + "-cachestats" + "\t\t" + "Show cache / pick stats" + "\n" + "-1" + "\t\t" + "Pick first file in directory" + "\n" + "-o <ext> <app>" + "\t" + "Override app to open a filetype with" + "\n" + "-l <filename>" + "\t" + "Load a set of commands from a file" + "\n" + "-h" + "\t" + "Runs any spawned applications in the background" + "\n" + "-i" + "\t" + "Silently ignore any missing directories" + "\n" + "-shuffle" + "\t" + "Picks one at a time until all files have been picked once" + "\n" + "-cache <min> <max>" + "\t" + "Cache file access for min < x < max hours" + "\n" + "-cachefolder <directory>" + "\t" + "Folder where cache data should be written" + "\n" + "--" + "\t" + "Null argument, use in scripts as a placeholder" + "\n" + "\n" + "Example File:" + "\n" + "-f" + "\n" + ".avi,.mpg,.mpeg,.mkv,.mp4,.rm" + "\n" + @"E:\eps\30 rock" + "\n" + @"E:\eps\drawn together" + "\n" + @"E:\eps\Harvey Birdman" + "\n" ); Application.Run(helpwindow); PickMode = pickModes.noPick; break; case "-h": PickRandomFile.hideSpawnedWindows = true; break; case "-c": PickRandomFile.showChooser = true; break; case "-r": PickMode = pickModes.threaded; break; case "-rc": ParseMode = parseModes.repeatCnt; break; case "-rd": ParseMode = parseModes.repeatDur; break; case "-o": ParseMode = parseModes.overrideext; break; case "-l": ParseMode = parseModes.loadfile; break; case "-cachestats": PickRandomFile.showCacheStats = true; break; case "-cache": PickRandomFile.useCache = true; ParseMode = parseModes.cache_min; break; case "-cachefolder": ParseMode = parseModes.cachefolder; break; case "--": //Nothing needed here break; default: PickRandomFile.addPath(s); break; } break; //exclude directory mode case parseModes.exclude: ParseMode = parseModes.Default; PickRandomFile.excludePath(s); break; case parseModes.cachefolder: ParseMode = parseModes.Default; PickRandomFile.cachefolder = s; break; case parseModes.filetype: ParseMode = parseModes.Default; PickRandomFile.usingFileTypes = true; PickRandomFile.fileFilter = s; string[] split = s.Split(','); foreach (string filetype in split) { PickRandomFile.addFileType(filetype); } break; case parseModes.repeatDur: ParseMode = parseModes.Default; int duration; if (Int32.TryParse(s, out duration)) { PickRandomFile.threadWaitDuration = duration * 1000; } break; case parseModes.repeatCnt: ParseMode = parseModes.Default; int count; if (Int32.TryParse(s, out count)) { PickRandomFile.threadRepeatCount = count; } break; case parseModes.overrideext: ParseMode = parseModes.overrideapp; lastext = s; break; case parseModes.overrideapp: ParseMode = parseModes.Default; PickRandomFile.addOverride(lastext, s); break; case parseModes.loadfile: //load a file one row at a time into args[] ParseMode = parseModes.Default; StreamReader f = new StreamReader(s); string line; while ((line = f.ReadLine()) != null) { commands.Add(line); } break; case parseModes.cache_min: ParseMode = parseModes.cache_max; PickRandomFile.cacheHoursMin = Convert.ToInt32(s); break; case parseModes.cache_max: ParseMode = parseModes.Default; PickRandomFile.cacheHoursMax = Convert.ToInt32(s); break; } } #region pickModes switch (PickMode) { case pickModes.single: PickRandomFile.scanDirectories(); if (PickRandomFile.showChooser) { PickRandomFile.pickChoice(); } else { PickRandomFile.pickRandom(); } break; case pickModes.threaded: Application.Run(new Monitor()); break; } #endregion } //else //{ // Application.EnableVisualStyles(); // Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new Monitor()); //} } catch (Exception e) { MessageBox.Show(e.StackTrace + "\n\n" + e.InnerException + "\n\n" + e.Source + "\n\n" + e.Data, e.Message); } }
static void Main(string[] args) { //Load all the commands in args[] into a list so that we can add to them later if we get passed a filename, foreach (String s1 in args) { commands.Add (s1); } string s = ""; if (args.Length > 0) { while (commands.Count > 0) { s = commands[0]; s.Trim(); commands.RemoveAt(0); switch(ParseMode) { //deafault mode case parseModes.Default : switch (s) { case "-x": ParseMode = parseModes.exclude; break; case "-nr": FindLargestFolder.recurse = false; break; case "-?": Help helpwindow = new Help( "Usage: \n" + "<dir>" + "\t\t" + "Search direct subdirectories of directory" + "\n" + "-c" + "\t\t" + "Choose folder after search" + "\n" + "-x <dir>" + "\t\t" + "Exclude directory" + "\n" + "-nr" + "\t\t" + "Disable recursing directories" + "\n" + "-l <filename>" + "\t" + "Load a set of commands from a file" + "\n" + "-f <foldername>" + "\t" + "Add a single folder to the list (not subdirectories)" + "\n" + "-cachestats" + "\t\t" + "Show cache / pick stats" + "\n" + "-cache <min> <max>" + "\t" + "Cache file access for min < x < max hours" + "\n" + "-cachefolder <directory>" + "\t" + "Folder where cache data should be written" + "\n" + "-cacheignore <directory>" + "\t\t" + "Never cache this folder" ); Application.Run(helpwindow); PickMode = pickModes.noPick; break; case "-c": FindLargestFolder.showChooser = true; break; case "-l": ParseMode = parseModes.loadfile; break; case "-f": ParseMode = parseModes.addSingleFolder; break; case "-cachestats": FindLargestFolder.showCacheStats = true; break; case "-cache": FindLargestFolder.useCache = true; ParseMode = parseModes.cache_min; break; case "-cachefolder": ParseMode = parseModes.cachefolder; break; case "-cacheignore": ParseMode = parseModes.cacheignore; break; default: FindLargestFolder.addPath(s); break; } break; //exclude directory mode case parseModes.exclude : ParseMode = parseModes.Default; FindLargestFolder.excludePath(s); break; case parseModes.loadfile: //load a file one row at a time into args[] ParseMode = parseModes.Default; StreamReader f = new StreamReader(s); string line; while ((line = f.ReadLine()) != null) { commands.Add(line); } break; case parseModes.addSingleFolder: //load a single folder straght into the list to check. FindLargestFolder.addDirectoryDirectly(s); break; case parseModes.cachefolder: ParseMode = parseModes.Default; FindLargestFolder.cachefolder = s; break; case parseModes.cacheignore: ParseMode = parseModes.Default; FindLargestFolder.cacheIgnoreList.Add(s); break; case parseModes.cache_min: ParseMode = parseModes.cache_max; FindLargestFolder.cacheHoursMin = Convert.ToInt32(s); break; case parseModes.cache_max: ParseMode = parseModes.Default; FindLargestFolder.cacheHoursMax = Convert.ToInt32(s); break; } } #region pickModes //keep the pick modes as if we selected pickmode.none we dont want to actually do anything here. switch (PickMode) { case pickModes.single: FindLargestFolder.scanDirectories(); if (FindLargestFolder.showChooser) { FindLargestFolder.pickChoice(); } else { FindLargestFolder.pickLargest(); } break; } #endregion } //save the cache FindLargestFolder.saveCache(); //else //{ // Application.EnableVisualStyles(); // Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new Monitor()); //} }
static void Main(string[] args) { try { //Load all the commands in args[] into a list so that we can add to them later if we get passed a filename, foreach (String s1 in args) { commands.Add(s1); } string s = ""; string lastext = ""; if (args.Length > 0) { while (commands.Count > 0) { s = commands[0]; s.Trim(); commands.RemoveAt(0); switch (ParseMode) { //deafault mode case parseModes.Default: switch (s) { case "-x": ParseMode = parseModes.exclude; break; case "-nr": PickRandomFile.recurse = false; break; case "-1": PickRandomFile.firstfileonly = true; break; case "-shuffle": PickRandomFile.shuffle = true; break; case "-stat": PickRandomFile.showStats = true; break; case "-f": ParseMode = parseModes.filetype; PickRandomFile.usingFileTypes = true; break; case "-?": Help helpwindow = new Help( "Usage: \n" + "<dir>" + "\t\t" + "Include directory" + "\n" + "-c" + "\t\t" + "Choose file after search" + "\n" + "-x <dir>" + "\t\t" + "Exclude directory" + "\n" + "-nr" + "\t\t" + "Disable recursing directories" + "\n" + "-f <list>" + "\t\t" + "Comma separated list of filetypes (e.g. .avi,.mpg,.mpeg)" + "\n" + "-r" + "\t\t" + "Repeat pick files " + "\n" + "-rc <cnt>" + "\t\t" + "How many times to repeat the pick operation (infinite if not specified)" + "\n" + "-rd <dur>" + "\t\t" + "Duration between pick attempts (seconds)" + "\n" + "-stat" + "\t\t" + "Show stats (for certain modes) in the window" + "\n" + "-cachestats" + "\t\t" + "Show cache / pick stats" + "\n" + "-1" + "\t\t" + "Pick first file in directory" + "\n" + "-o <ext> <app>" + "\t" + "Override app to open a filetype with" + "\n" + "-l <filename>" + "\t" + "Load a set of commands from a file" + "\n" + "-h" + "\t" + "Runs any spawned applications in the background" + "\n" + "-shuffle" + "\t" + "Picks one at a time until all files have been picked once" + "\n" + "-cache <min> <max>" + "\t" + "Cache file access for min < x < max hours" + "\n" + "-cachefolder <directory>" + "\t" + "Folder where cache data should be written" + "\n" + "--" + "\t" + "Null argument, use in scripts as a placeholder" + "\n" + "\n" + "Example File:" + "\n" + "-f" + "\n" + ".avi,.mpg,.mpeg,.mkv,.mp4,.rm" + "\n" + @"E:\eps\30 rock" + "\n" + @"E:\eps\drawn together" + "\n" + @"E:\eps\Harvey Birdman" + "\n" ); Application.Run(helpwindow); PickMode = pickModes.noPick; break; case "-h": PickRandomFile.hideSpawnedWindows = true; break; case "-c": PickRandomFile.showChooser = true; break; case "-r": PickMode = pickModes.threaded; break; case "-rc": ParseMode = parseModes.repeatCnt; break; case "-rd": ParseMode = parseModes.repeatDur; break; case "-o": ParseMode = parseModes.overrideext; break; case "-l": ParseMode = parseModes.loadfile; break; case "-cachestats": PickRandomFile.showCacheStats = true; break; case "-cache": PickRandomFile.useCache = true; ParseMode = parseModes.cache_min; break; case "-cachefolder": ParseMode = parseModes.cachefolder; break; case "--": //Nothing needed here break; default: PickRandomFile.addPath(s); break; } break; //exclude directory mode case parseModes.exclude: ParseMode = parseModes.Default; PickRandomFile.excludePath(s); break; case parseModes.cachefolder: ParseMode = parseModes.Default; PickRandomFile.cachefolder = s; break; case parseModes.filetype: ParseMode = parseModes.Default; PickRandomFile.usingFileTypes = true; PickRandomFile.fileFilter = s; string[] split = s.Split(','); foreach (string filetype in split) { PickRandomFile.addFileType(filetype); } break; case parseModes.repeatDur: ParseMode = parseModes.Default; int duration; if (Int32.TryParse(s, out duration)) { PickRandomFile.threadWaitDuration = duration * 1000; } break; case parseModes.repeatCnt: ParseMode = parseModes.Default; int count; if (Int32.TryParse(s, out count)) { PickRandomFile.threadRepeatCount = count; } break; case parseModes.overrideext: ParseMode = parseModes.overrideapp; lastext = s; break; case parseModes.overrideapp: ParseMode = parseModes.Default; PickRandomFile.addOverride(lastext, s); break; case parseModes.loadfile: //load a file one row at a time into args[] ParseMode = parseModes.Default; StreamReader f = new StreamReader(s); string line; while ((line = f.ReadLine()) != null) { commands.Add(line); } break; case parseModes.cache_min: ParseMode = parseModes.cache_max; PickRandomFile.cacheHoursMin = Convert.ToInt32(s); break; case parseModes.cache_max: ParseMode = parseModes.Default; PickRandomFile.cacheHoursMax = Convert.ToInt32(s); break; } } #region pickModes switch (PickMode) { case pickModes.single: PickRandomFile.scanDirectories(); if (PickRandomFile.showChooser) { PickRandomFile.pickChoice(); } else { PickRandomFile.pickRandom(); } break; case pickModes.threaded: Application.Run(new Monitor()); break; } #endregion } //else //{ // Application.EnableVisualStyles(); // Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new Monitor()); //} } catch (Exception e) { MessageBox.Show(e.StackTrace + "\n\n" + e.InnerException + "\n\n" + e.Source + "\n\n" + e.Data , e.Message); } }