public async Task DirIterateAsync(string DirPathNWC, string DirPathNWD, Autodesk.Navisworks.Api.Automation.NavisworksApplication automationApplication) { string[] NewDir = Directory.EnumerateDirectories(DirPathNWC, "*_*_*_*_*", SearchOption.AllDirectories).ToArray(); int i = 0; try { //Get folders foreach (string d in NewDir) { i++; // Make a reference to info of a directory. DirectoryInfo di = new DirectoryInfo(d); // Get a reference to each file in that directory. FileInfo[] fiArr = di.GetFiles(); if (fiArr.Length != 0) { string dirName = new DirectoryInfo(d).Name; string FileNameNWD = dirName + "_" + CurDate + ".nwd"; string[] FilesList = new string[fiArr.Length]; FilesList = GetFilesList(d, fiArr, out string ZeroIndEl, FilesList); if (ZeroIndEl != "") { try { await Task.Run(() => InitiateFileOperations(ZeroIndEl, FilesList, DirPathNWD, dirName, FileNameNWD)); } catch (Autodesk.Navisworks.Api.Automation.AutomationException e) { //An error occurred, display it to the user System.Windows.Forms.MessageBox.Show("Error: " + e.Message); } catch (Autodesk.Navisworks.Api.Automation.AutomationDocumentFileException e) { //An error occurred, display it to the user System.Windows.Forms.MessageBox.Show("Error: " + e.Message); } finally { if (automationApplication != null) { automationApplication.Dispose(); automationApplication = null; } } } } } } catch (Exception ex) { LogWriter(ex.ToString(), CurDateTime); return; } await EndTaskAsync(); }