

Osteon писал(а):Существует ли функция Windows (типа API) для проверки на уровне операционной системы - был ли изменен файл
Osteon писал(а):файл *.mdb

Qwertiy писал(а):Есть.
 
 Qwertiy писал(а):А доступ к файлу для копирования вообще будет?


Osteon писал(а):Лаконично.

Qwertiy писал(а):PS: Незачем помещать такие вопросы в раздел по БД, т. к. к БД они никакого отношения не имеют.
 Если модеры не против, пусть остается здесь, если же нет - пусть перенесут в нужный раздел...
  Если модеры не против, пусть остается здесь, если же нет - пусть перенесут в нужный раздел...



iGrok писал(а):А я бы вместо мониторинга изменений через соответствующую API, сделал проще.
1) Проверить время последнего изменения файла.
2) Сравнить размер файла.
3) Если время изменилось, а размер нет - можно дополнительно считать хэш файла (или даже CRC32, для начала) (если там не несколько гигабайт, конечно), и сравнивать его.


Private Sub Command2_Click()
    Dim FSO As Object, File As Object, str As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set File = FSO.GetFile("C:\autoexec.bat")
    str = vbNullString
    str = str & "Дата создания - " & File.DateCreated & vbCrLf
    str = str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf
    str = str & "Дата последней модификации - " & File.DateLastModified & vbCrLf
    str = str & "Диск - " & File.Drive.DriveLetter & vbCrLf
    str = str & "Имя - " & File.Name & vbCrLf
    str = str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf
    str = str & "Путь - " & File.Path & vbCrLf
    str = str & "Короткое имя - " & File.ShortName & vbCrLf
    str = str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf
    str = str & "Размер - " & File.Size & vbCrLf
    str = str & "Тип файла - " & File.Type
    MsgBox str
    
End Sub


iGrok писал(а):Т.е. сравнивать нужно не со значениями в момент старта, а с параметрами последней резервной копии.

Qwertiy писал(а):Ну зачем тут FSO?
И вообще: http://msdn.microsoft.com/en-us/library ... 65(v=vs.85).aspx.
 По мне - так FSO гораздо проще для моих целей...
  По мне - так FSO гораздо проще для моих целей...  



Osteon писал(а):Я айпишки-то недолюбливаю, а тут на уровне DWORD/LWORD...
 
 

iGrok писал(а):А вот вместо FSO лучше, конечно, разобраться с API GetFileTime.


iGrok писал(а):А вот вместо FSO лучше, конечно, разобраться с API GetFileTime.


, в общем-то, действительно, не самый сложный вариант. Вот только прежде чем выполнить GetFileTime, там еще несколько айпишек в довесок нужны...iGrok писал(а):API GetFileTime.

Osteon писал(а):чем API лучше FSO?

Osteon писал(а):несколько айпишек


iGrok писал(а):Более соответствует принципу Бритвы Оккама
 
 iGrok писал(а):Айпи (IP) - это обозначение сетевого адреса и соответствующего протокола.
А мы тут, вроде как, апи (API) обсуждаем.
 
 iGrok писал(а):Только ничего сложного в этом нет. Примеров в сети навалом

iGrok писал(а):CreateFile -> GetFileTime -> CloseHandle
 Без них чегой-то не получается...
  Без них чегой-то не получается...


iGrok писал(а):А ещё лучше воспользуйся для этого CompareFileTime
 Чую я, скоро крутым API-шником буду...
 Чую я, скоро крутым API-шником буду...  


iGrok писал(а):При выходе находишь последнюю имеющуюся у тебя резервную копию. Получаешь её размер и время последнего изменения.Получаешь размер и время последнего изменения текущей базы.Т.е. сравнивать нужно не со значениями в момент старта, а с параметрами последней резервной копии.

Osteon писал(а):Общий алгоритм я понимаю так - при запуске программы с помощью GetFileTime я узнаю время последней модификации файла, сохраняю его где-нить, по окончании работы программы я так же, с помощью GetFileTime, снова узнаю время модификации, с помощью CompareFileTime сравниваю два значения, и в зависимости от результата предпринимаю определенные шаги?
iGrok писал(а):При выходе находишь последнюю имеющуюся у тебя резервную копию. Получаешь её размер и время последнего изменения.

 
 iGrok писал(а):Получаешь её размер и время последнего изменения.
 И хранить данные решил на диске, потому как не хочу расходовать ресурсы на удержание в памяти значений, которые, по сути, будут нужны только один раз.
 И хранить данные решил на диске, потому как не хочу расходовать ресурсы на удержание в памяти значений, которые, по сути, будут нужны только один раз.

Osteon писал(а):Я решил не находить размер, думаю, что вполне достаточно времени изменения. В соответствии ли с той же "бритвой Оккама"...И хранить данные решил на диске, потому как не хочу расходовать ресурсы на удержание в памяти значений, которые, по сути, будут нужны только один раз.


HandKot писал(а):а не будет ли время изменения файла временем последнего ее открытия ?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9