나랑 벗었 어. 내가하고 싶은 일은 여러 파일로 시작하는 디렉토리를 검색/스캔 한 다음 가장 최근에 마지막으로 수정 한 파일을 가져 오는 것입니다. 예를 들어 Prefetch 디렉토리에서 "apple", "pear"및 "orange"로 시작하는 파일을 검색하려고합니다. 이 파일들은 존재하지 않을 수도 있지만, 존재한다면, 사과로 시작하는 파일과 배로 시작하는 파일이 있다고 말하면, 가장 최근에 수정 된 파일을 얻고 싶습니다. 아래의 코드를 통해이 작업을 수행 할 수 있지만 단 하나만 검색합니다.디렉토리에서 뭔가로 시작하는 파일을 검색 한 다음 가장 최근에 수정 된 파일을 얻는 방법
DirectoryInfo prefetch = new DirectoryInfo("c:\\Windows\\Prefetch");
FileInfo[] apple = prefetch.GetFiles("apple*");
if (apple.Length == 0)
// Do something
else
{
double lastused = DateTime.Now.Subtract(
apple.OrderByDescending(x => x.LastWriteTime)
.FirstOrDefault().LastWriteTime).TotalMinutes;
int final = Convert.ToInt32(lastused);
}
기본적으로 사과 대신 '사과', '배'등 어떻게 코드 검색을 할 수 있습니까? 위의 코드를 수정할 수 있는지 또는 완전히 변경해야하는지 여부는 알 수 없습니다. 나는 이것을 몇 시간 동안 알아 내려고 노력했지만 그것을 할 수는 없다.
List<string> files=new List<string>();
foreach(var str in prefixes)
files.AddRange(dirInfo.GetFiles(str));
return (from d in (from name in files select File.GetLastAccessTime(name)) orderby d descending).FirstOrDefault();
접두사 검색 패턴의 목록이며, dirInfo은의 DirectoryInfo입니다 :
그런 다음 해당 파일의 날짜를 확인 접두사 일치하는 파일의 집합을 만들 수
GetFiles를 적절한 패턴으로 세 번 호출하고 세 가지 다른 배열에 결과를 저장 한 다음 단일 목록에 추가합니다. 이제는 내림차순으로 순서를 적용하고 목록의 첫 번째 요소를 가져올 수 있습니다. 끝 부분에있는 계산법으로 무엇을하려하는지 명확히 알지 못합니다. – Steve
이것이 어떻게 작동 하는지를 알 수 있으며 문제를 해결할 수는 있지만 어떻게 저장하고 목록에 추가 할 수 있습니까? – DylanC
** List **을 선언 한 다음 AddRange를 사용하여 세 세트의 파일을 같은 목록에 추가하십시오. 이제 OrderByDescending 및 FirstOrDefault가 해당 목록에서 가장 최근에 작성된 파일을 제공합니다. –
Steve