static void populateListViewWithExecutablesInO2Folders(ListView lvTargetListView) { var imageKey = 0; if (lvTargetListView.okThread(delegate { populateListViewWithExecutablesInO2Folders(lvTargetListView); })) { var executableFiles = new List<String>(); executableFiles.AddRange(Files.getFilesFromDir_returnFullPath(DI.config.CurrentExecutableDirectory, "*.exe")); executableFiles.AddRange(Files.getFilesFromDir_returnFullPath(DI.config.O2TempDir, "*.exe")); lvTargetListView.Items.Clear(); foreach (var file in executableFiles) { var item = new ListViewItem.ListViewSubItem { Text = Path.GetFileName(file), Tag = file }; lvTargetListView.Items.Add(new ListViewItem(new[] { item }, imageKey)); } } }