현재 웹 서버에서 야간에 실행될 웹 사이트의 백그라운드 프로세스를 작성 중입니다.C#을 사용하여 파일을 덮어 쓴 경우 (이동 및 바꾸기)
내 주요 문제는 지난 24 시간 동안 이미지 파일이 변경되었는지 여부를 감지해야한다는 것입니다. 나는이 다음과 같은 코드를 사용하여 쉽게 달성 될 것이라고 생각 :
DateTime lastWrite = System.IO.File.GetLastWriteTimeUtc(HttpContext.Current.Server.MapPath(image.FileName));
if (lastWrite > DateTime.UtcNow.AddHours(-24) && lastWrite < DateTime.UtcNow)
{
var a = "This item has been modified";
}
else
{
var b = "This item has not been modified";
}
하지만,이 파일이 마지막으로 수정 된이는 나에게 날짜 시간을 줄 것으로 보인다. 이미지가 페인트와 같은 것을 사용하여 편집되었지만 수정 된 날짜와 기존 이미지의 잘라 내기 및 붙여 넣기를 사용하여 이미지를 덮어 썼는지 여부는 원래 이미지와 동일하게 유지되는지 여부를 알려주지 않습니다. 그 자리에.
내 질문에 따라서 파일 (주로 이미지)이 24 시간 내에 진정으로 수정 (편집, 복사, 제거, 대체)되었는지 어떻게 알 수 있습니까?
도움을 주시면 감사하겠습니다.
잘라 내기 및 붙여 넣기를 처리하려면 GetCreationTimeUtc()를 사용하십시오. – CathalMF
파일을 붙여 넣으려는 디렉토리에 이미 같은 이름의 파일이있는 경우 잘라 내기 및 붙여 넣기가 감지되지 않습니다. 이동 및 바꾸기 옵션을 사용하면 작성 시간이 변경되지 않습니다. – jezzipin
파일에 플래그를 지정할 수있는 방법이 허용되면 NTFS 대체 데이터 스트림을 사용할 수 있습니다 (파일 자체에 숨겨진 플래그와 같으며 새 파일에있을 수 없음) – Xaruth