0
디렉토리에서 파일 경로가 포함 된 문자열 목록을 가져 오려고합니다. 사용자는 쉼표로 구분 된 형식 (예 : "gif, jpg"
)으로 파일 확장명을 지정합니다. 이것은 내 코드입니다.Linq가 문자열 목록에서 작동하지 않습니다.
private static List<string> GetFiles(string DirectoryPath, string Extensions)
{
List<string> FilePaths = new List<string>();
if (Directory.Exists(DirectoryPath))
{
//Calling this line more than once is not allowed.
List<string> AllFiles = Directory.EnumerateFiles(DirectoryPath, "*.*", SearchOption.AllDirectories).ToList();
if (!string.IsNullOrEmpty(Extensions) && !string.IsNullOrWhiteSpace(Extensions))
{
foreach (string Extension in Extensions.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries))
{
List<string> SearchedFiles = AllFiles.Where(f => f.EndsWith(Extension)).ToList();
FilePaths.AddRange(SearchedFiles);
}
}
else FilePaths.AddRange(AllFiles);
}
return FilePaths;
}
코드는 정상적으로 작동하지만 첫 번째 확장에 대한 결과 만 검색하고 다음 후속 확장에 대한 결과는 검색하지 않습니다. foreach 루프의 첫 번째 줄에 지정된 Linq를 무시합니다.이 경우 SearchedFiles를 초기화하면 0 개의 결과가있는 목록과 같습니다. 분할 기능이 후속 확장 기능을 제공하지 않는 것 같지만 올바르게 작동합니다. 또한 .
으로 지정된 확장을 시도했지만 작동하지 않았습니다.
참고 : 디렉터리를 여러 번 검색하지 않으려합니다.
아를. 문제가 해결되었습니다. 감사. – LeCdr