private void GetFiles(string directory, string extensions, ref ProjectFolder currentFolder) { foreach (string dir in Directory.GetDirectories(directory)) { if ((new DirectoryInfo(dir).Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) { continue; } _projectService.Project.IncludeDirs.Add(new FilePath(dir)); string dirName = Path.GetFileName(dir); ProjectFolder folderAdded = _projectService.AddFolder(dirName, currentFolder); GetFiles(dir, extensions, ref folderAdded); } string[] files = Directory.GetFiles(directory); foreach (string file in files.Where(file => file != null && extensions.Contains(Path.GetExtension(file)))) { _projectService.AddFile(currentFolder, new FilePath(file)); } }
private void AddFile(FilePath file, ProjectFolder folder) { ProjectFile fileAdded = _projectService.AddFile(folder, file); string filePath = fileAdded.FileFullPath; if (string.IsNullOrEmpty(filePath)) { // should never happen return; } _model.OnNodesChanged(fileAdded.ParentFolder); }