나는 파워 쉘 스크립트 ( 이것을 바탕으로 )를 사용하여 폴더를 모니터하고 파일 작성시기를 알 수 있습니다.
내 스크립트는 다음과 같습니다.
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "H:\draw\"
$watcher.Filter = "*.nrrd"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$action =
{
$path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
if ($path -like '*\tumor\*')
{
Write-Host "The file '$path' was $changeType at '$(Get-Date)'" -fore green
}
}
### DECIDE WHICH EVENTS SHOULD BE WATCHED
Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {sleep 5}
"손으로"파일을 만들면 작업이 제대로 실행됩니다 (녹색 문장이 표시됨).
그러나 파일은 손으로 작성된 것이 아니라 PHP 스크립트로 작성됩니다. 그리고 파일이 PHP 스크립트에 의해 생성되면, 액션은 트리거되지 않습니다.
그러나 PHP 스크립트에 의해 생성 된 파일을 복사 / 붙여 넣을 때 트리거가 발생하므로 파일에 문제가 없습니다.
그것은 PHP에서 생성 작업을 가능하게 할 수 있습니까?
주의 : 파일은 이렇게 만들었습니다.
$file = fopen($path, 'wb');
fwrite($file, $my_data);
fclose($file);
최신 정보
추가 연구가 끝난 후,이 문제는 PHP가 아니라 다른 사용자 / 세션 (powershell 스크립트를 시작한 사용자)이 파일을 만들 때 발생한다는 것을 알았습니다.
만나다 내 다른 게시물에 그래서
예, 그렇습니다. 이게 문제가 되나요?
—
Raccoon
@ LievenKeersmaekers 귀하의 URL은 더 이상 적용 할 수 없다고 생각합니다.
—
Raccoon
Microsoft has confirmed that this is a problem in IIS 4.0 and 5.0. This problem was first corrected in Windows 2000 Service Pack 3.
그리고 SO에 대한 대답은 10 살입니다 ... 나는 문제가 매핑 된 드라이브 자체가 아니라 다른 사용자 / 세션이 파일을 만들 때라고 생각합니다. 로컬 컴퓨터에서 시도 했으므로 확인했습니다.
온 것이 전부 야. (늙은) 나는 질문을 혼란스럽게하지 않도록 내 의견을 삭제할 것이다.
—
Lieven Keersmaekers