이 방법은 하위 디렉터리 중 하나가 비어 있지 않으면 파일, 디렉터리 및 하위 디렉터리와 그 내용을 가져 오는 작업입니다.빈 하위 디렉터리가있을 때 GetAllFilesAndDirectories 메서드 디버깅
public static IEnumerable<FileSystemInfo> GetAllFilesAndDirectories (string dir) {
DirectoryInfo dirInfo = new DirectoryInfo(dir);
Stack<FileSystemInfo> stack = new Stack<FileSystemInfo>();
stack.Push(dirInfo);
while (dirInfo != null || stack.Count > 0) {
FileSystemInfo fileSystemInfo = stack.Pop();
DirectoryInfo subDirectoryInfo = fileSystemInfo as DirectoryInfo;
if (subDirectoryInfo != null) {
yield return subDirectoryInfo;
foreach (FileSystemInfo fsi in subDirectoryInfo.GetFileSystemInfos()) {
stack.Push(fsi);
}
dirInfo = subDirectoryInfo;
} else {
yield return fileSystemInfo;
dirInfo = null;
}
}
}
는 예외입니다 :
System.InvalidOperationException은 = 처리되지 않은 메시지였다 "빈 스택." 출처 = "시스템"
수정 방법은 무엇입니까?