public string dir { get; set; }
public string[] files { get; set; }
public Rootobject[] folders { get; set; }
public static int GetNumberOfFilesWithHackExt(string[] files)
foreach (string file in files)
if (file.EndsWith(".hack"))
public static int GetNumberOfInfectedFilesRecursively(Rootobject root)
count += GetNumberOfFilesWithHackExt(root.files);
if (root.folders != null)
foreach (Rootobject folder in root.folders)
count += GetNumberOfInfectedFilesRecursively(folder);
public static void Main()
var root = new Rootobject()
files = new string[] { "file1.txt", "file2.hack" },
folders = new Rootobject[]
files = new string[] { "subfile1.bat", "subfile2.json" }
files = new string[] { "subfile2.hack", "subfile2.zip" }
int num = GetNumberOfInfectedFilesRecursively(root);