Справочная информация:
У меня есть служба мониторинга файлов, которая отслеживает изменения файлов в локальной системе, используя класс FileSystemWatcher
, и я обрабатываю такие события, как Created
, Deleted
, Renamed
.Когда эти события запускаются, я бы просто хотел получить свойства файла, такие как FileName
, FileSize
, CreationTime
, LastAccessTime
, LastWriteTime
, используя класс FileSystemInfo
.
Проблема:
Пока эта служба работает, я не могу удалить некоторые программы, например (Microsoft Security Essentials).У меня такое ощущение, что эти сервисы висят на ресурсах файлов, помеченных для удаления, потому что я могу удалить эти программы, только если запущен только этот сервис.
Мой вопрос: как мне GET THE PROPERTIES OF THE FILE
(как указано выше) ALTERNATIVE
и эффективным способом without hanging on to the resources of the file
?
Вот мой код с использованием FileSystemInfo
public void OnCreate/OnRenamed(object source, FileSystemEventArgs e)
{ FileInfo file = new FileInfo(e.FullPath);
String output = "<Event><TimeStamp>" + currentTime + "</TimeStamp>";
output += "<Name>" + action + "</Name>";
output += "<Properties><FileName>" + file.Name + "</FileName>";
output += "<FullPath>" + file.FullName + "</FullPath>";
output += "<FileSize>" + file.Length + "</FileSize>";
output += "<CreationTime>" + String.Format("{0:yyyyMMdd-HHmmss.fff}", file.CreationTime) + "</CreationTime>";
output += "<LastAccess>" + String.Format("{0:yyyyMMdd-HHmmss.fff}", file.LastAccessTime) + "</LastAccess>";
output += "<LastWriteTime>" + String.Format("{0:yyyyMMdd-HHmmss.fff}", file.LastWriteTime = DateTime.Now) + "</LastWriteTime></Properties></Event>";
}
С уважением, Дерек