파일을 복사하거나 폴더로 옮긴 날짜에 의존 할 방법이 없습니다. Windows는 파일 시스템, 드라이브, 네트워크 공유 등을 통해 파일을 보존합니다. Linux 파일 서버에서 문제를 해결하거나 사람들이 FTP 또는 웹 기반 업로드 시스템을 사용하여 파일을 직접 복사하지 못하게 할 수 있습니다.
사람들이 파일을 업로드 한 후 파일을 수정할 수없는 것이 괜찮다면, 별도의 업로드 및 액세스 폴더와 파일간에 파일을 이동하고 다시 업데이트하는 스크립트를 가질 수 있습니다. 그러나 사람들이 파일을 직접 수정할 수 있기를 원하는 것처럼 들립니다.
따라서 해킹이 쉽지만 간단한 해결책은 날짜를 망칠 것입니다. 두 개의 스크립트를 작성합니다.
시간별 날짜 변경자 스크립트
원하는 언어로 한 시간 정도 스크립트를 실행하십시오.
- 지난 20 년 동안 날짜가 수정 된 파일을 찾습니다.
- 이러한 파일을 찾으면 오늘에서 20 년을 빼고 수정 한 날짜를 변경하십시오.
powershell에서 다음과 같이 보일 것입니다.
$path = "D:\test"
$today = Get-Date
$before = $today.AddDays(-7300) #356*20 days
Get-ChildItem -Recurse -Path $path | foreach {
if ($_.LastWriteTime -gt $before) {
Write-Host $_.Name
$_.LastWriteTime = $before
}
}
오늘 (5 월 27 일)이 스크립트를 실행하면 모든 파일의 수정 날짜가 1994 년 6 월 1 일 (정확히 356 * 20 일)로 설정됩니다. $ before 값보다 새로운 파일 만 변경하므로 이미 과거로 설정 한 파일은 건드리지 않습니다.
정리 스크립트
정리 스크립트는 매일 밤 실행되며 다음과 같습니다.
- "20 년 X 일 전에"수정 한 날짜의 파일 검색
- 그들을 삭제
이 부분에 대한 스크립트는 작성하지 않겠습니다. 지정된 날짜보다 오래된 파일을 삭제하고 처리 할 수있는 유틸리티가 많이 있습니다. 중요한 부분은 7300 + X 일이 지난 파일을 찾는 것입니다. 여기서 X는 파일을 마지막으로 수정 한 후 유지할 일 수입니다.
장점
여기에 다른 답변보다 몇 가지 장점이 있습니다.
- 누군가 파일을 수정하면 타이머가 재설정됩니다.
- NTFS 대체 스트림이 파일을 표시 할 필요가 없습니다 (파일을 이동할 때 유지되므로 수정 된 파일을 조기에 삭제할 수 있음)
- 성능에 영향을주는 경우 최소화해야합니다. 데이터베이스 나 파일 이름 및 / 또는 해시 목록을 유지할 필요가 없습니다.
- 스크립트가 실행되지 않으면 아무것도 깨지지 않습니다. 날짜를 업데이트하는 데 필요한 서비스 또는 지속적으로 실행되는 프로그램이 없습니다. 몇 가지 예약 된 작업. 새 파일을 감시하고 마지막으로 수정 한 시간을 업데이트하는 솔루션은 서비스가 실패하거나 경쟁 조건에 처할 경우 새 파일을 삭제하게됩니다.
내가 볼 수있는 유일한 문제는 사람들이 20 년 전에 마지막으로 수정 된 파일을 드롭 폴더에 복사하는 경우입니다. 나는 대부분의 시나리오에서 그다지 큰 문제는 아닐 것이라고 생각하지만 일어날 수 있습니다.