유효한 폴더 (드라이브 루트 제외)를 가리키는 DirectoryInfo 클래스의 인스턴스에서 DirectoryInfo.GetDirectories(".")을 호출하면 결과는 자신의 것과 같은 이름의 잘못된 디렉토리를 가리키는 첫 번째 (그리고 유일한) 요소를 가리키는 DirectoryInfo 배열입니다 .DirectoryInfo.GetDirectories (string searchPattern)의 버그입니까?
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo("c:\\temp");
DirectoryInfo[] dis = di.GetDirectories(".");
Console.WriteLine(dis[0].FullName);
}
인쇄합니다 존재하지 않는 디렉토리 : "."
이c:\temp\temp
내가 이해 윈도우에서는, 그 예를 들어
현재 디렉토리를 나타냅니다. 메서드에서 "c : \ temp"를 반환하지만 동일한 이름의 가짜 하위 디렉토리를 반환하면 절대적으로 잘못된 동작처럼 보일 수 있습니다.
이 함수에서 반환 된 모든 DirectoryInfo 객체가 실제로 존재한다는 것을 주장 할 수 있어야합니다.
나는 .NET 리플렉터를 사용하여 클래스를 디 컴파일,하지만 짐승이고 나는 내 머리에 로직을 걷는 기분이 안이 방법
internal static string[] InternalGetFileDirectoryNames(string path, string userPathOriginal, string searchPattern, bool includeFiles, bool includeDirs, SearchOption searchOption)"
에 연결됩니다. 분명히 IMHO 버그입니다.
FYI - a "*"는 누군가가 묻기 전에 예상대로 작동합니다.
재미있는 ..하지만합니다. – Greg
당신은 좋은 지적입니다. 그러나, 항상 "이런 식으로되어있는"것들 중 하나가 아니며 모든 사람들은 항상 그것을 걸러냅니다. 그리고 .. 디렉토리 목록? – ScottCher
DOS에서 @ScottCher를 "dir"하면됩니다. 디렉토리에 존재하지 않는 결과가 없습니다. 나는 단지 "." 및 ".."(둘 다 존재) – TheSoftwareJedi