에 GetFiles
메서드의 문서화되지 않은 동작이 발생했습니다. ,이 방법은 C:\Users\ft1\nul
또는 D:\aux
같은 존재하지 않는 파일의 이름을 포함하는 배열을 반환 등 "nul.*"
또는 "aux.bmp"
로 메서드에 전달 된 searchPattern
매개 변수가 예약 된 Windows 장치 이름을 포함 할 때마다Directory.GetFiles가 존재하지 않는 파일을 찾습니다.
, 등
I 그 장치 이름이 "."과 같은 컨텍스트를 특별한 의미로 갖는 지 궁금해 할 것입니다. 또는 ".."또는 이것이 일종의 버그 일 경우. 어쨌든, 여전히 이상하게 보입니다. 예를 들어, C#에서이 코드 :
string[] fileNames = Directory.GetFiles(@"C:\D:\..\..\...\", "con.txt");
foreach (string fileName in fileNames) Console.WriteLine(fileName);
인쇄
C:\D:\..\..\...\con
모든 단서는?
당신은 알고 계십니까? –
좋은 질문입니다, 아마도 실제 SO 질문으로 물어 보는 것이 좋을 것입니다. 그러나 [Windows에서 주어진 문자열이 합법적 인 (허용 된) 파일 이름인지 확인하는 방법] 질문 [http://stackoverflow.com]/questions/62771/given-string-of-legal-allowed-file-name-under-windows)에 대한 요청이 이미 있으면, 나는 당신에게 링크를 줄 것이다. –
에릭 감사합니다. –