private ArchiveEntryType GetArchiveEntryType(byte[] fileHeader) { if (ElfFile.IsElfFile(fileHeader)) { ElfHeader elfHeader = ElfFile.ReadHeader(fileHeader); if (elfHeader.@class == ElfClass.Elf32) { return(ArchiveEntryType.Executable32); } else { return(ArchiveEntryType.Executable64); } } return(ArchiveEntryType.None); }
private static void Main(string[] args) { var(sourceFolder, targetFolder) = ParseCommandLine(args); if (string.IsNullOrEmpty(sourceFolder) || string.IsNullOrEmpty(targetFolder)) { Usage(); return; } var model = new FileListModel(); var allFiles = Directory.EnumerateFiles(sourceFolder, "*.*", SearchOption.AllDirectories) .ToList(); Console.WriteLine("Исполнимые файлы:"); foreach (var sourceFileName in allFiles.Where(fileName => PeFile.IsPeFile(fileName) || ElfFile.IsElfFile(fileName))) { var relativeFileName = Path.GetRelativePath(sourceFolder, sourceFileName); Console.WriteLine(" " + relativeFileName); var targetFileName = Path.Combine(targetFolder, relativeFileName); Directory.CreateDirectory(Path.GetDirectoryName(targetFileName)); File.Copy(sourceFileName, targetFileName); model.AddFile(targetFileName, relativeFileName); } Console.WriteLine("Файлы скопированы"); File.WriteAllText("FileListReport.html", new FileListTemplate(model).TransformText()); Console.WriteLine("Отчёт создан"); }