Reloc.Extract.ScanDirectoryAsync C# (CSharp) Method

ScanDirectoryAsync() public static method

public static ScanDirectoryAsync ( string Source, string Dest, string glob = "*", bool Recursive = false ) : System.Threading.Tasks.Task
Source string
Dest string
glob string
Recursive bool
return System.Threading.Tasks.Task
        public static Task ScanDirectoryAsync(string Source, string Dest, string glob = "*", bool Recursive = false)
        {
            if (!Directory.Exists(Source))
            {
                WriteLine($"Can not find scan folder {Source} to import PE files from");
                return null;
            }
            else {

                WriteLine($"Scanning folder {Source} and saving relocs into {Dest}.");

                return CompileEachFileAsync(Source, glob, Dest, Recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly,
                        (f, g) => new Extract().ScanFile(f, g));
                // this exception handling not working well
                //.ContinueWith(t => {
                //    if (Verbose > 0)
                //        WriteLine($"{t.Exception.Message}. InnerException: {t.Exception.InnerExceptions}", );
            }
        }

Usage Example

コード例 #1
0
ファイル: Program.cs プロジェクト: K2/Reloc
        /// <summary>
        /// Entrypoint, command line handler.
        /// </summary>
        /// <param name="args"></param>
        public void Main(string[] args)
        {
            switch (args[0].ToLowerInvariant())
            {
            case "delocate":
                var dl = new DeLocate();
                dl.DeLocateFile(args[1], args[2], ulong.Parse(args[3], NumberStyles.HexNumber), args[4], bool.Parse(args[5]), true, true).Wait();
                break;

            case "reloc":
                Reloc(args);
                break;

            case "extract":
                Extract.Verbose = 1;
                Extract.ScanDirectoryAsync(args[1], args[2]).Wait();
                WriteLine($"Compiled {Extract.NewCnt} new .reloc data fragments");
                break;

            default:
                return;
            }
        }