![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
копировать занятый файл [D7, XP]
alex_3 © (2008-10-08 15:43:00)Подскажите как скопировать файл который занят программой?
Riply (2008-10-08 18:34:00) [1]> [8] Palladin © (08.10.08 17:19)
> давно хотел прочесть mdf'ы и ldf'ы во время работы mssql :)
Если, нужен рабочий код, то дайте мне время (и не очень мало :)).
(основная часть старых исходников уничтожена, а из новых трудно его выдернуть,
ибо слишком много собственнолапных ф-ий и структур используется :))
Один из вариантов уклонения от налогов.. тьфу !
Один из вариантов уклонения от открытия нашего объекта ! :
получаем LCN через вызов
NtQueryDirectoryFile(..., FileIdBothDirectoryInformation, ...) для его "родителя".
Т.е. нам нужен доступ к родителю, а не к объекту.
Имея на руках LCN, при помощи FSCTL_GET_NTFS_FILE_RECORD, получаем его FILE_RECORD.
Далее задача сводится к парсингу FILE_RECORD-а, с целью получения его RunArray.
А это совсем не разбор MFT и не так уж и страшно :)
Правильный$Вася (2008-10-08 17:39:00) [2]
> Что из этого получится, если туда в этот момент идет запись,
> - это другой вопрос :)
это-то как раз не вопрос
потому как кроме грязи, чичего там не будет
хотя в некоторых случаях это не помеха, но автору явно не это надо...
Palladin (2008-10-08 17:19:00) [3]
> Riply © (08.10.08 17:08) [6]
(хором) прооосим! прооосим!
:)))
давно хотел прочесть mdf'ы и ldf'ы во время работы mssql :)
Riply (2008-10-08 17:09:00) [4]> [6] Riply © (08.10.08 17:08)
P.S.
Что из этого получится, если туда в этот момент идет запись, - это другой вопрос :)
Riply (2008-10-08 17:08:00) [5]> [5] Правильный$Вася (08.10.08 16:32)
> если файл открыт монопольно - никак
IMHO, слишком категоричное утверждение.
Ибо, это возможно, даже без мучений с MFT :)
Правильный$Вася (2008-10-08 16:32:00) [6]
> как скопировать файл который занят программой?
если файл открыт монопольно - никак
Vlad Oshin (2008-10-08 16:05:00) [7]
> а можно сделать копию в памяти, ни разу не открыв его?!
> я что, так отстал от жизни?
это не я написал - это путь к поиску
clickmaker (2008-10-08 15:56:00) [8]> [2] Vlad Oshin © (08.10.08 15:47)
> Данный способ никогда не открывает файл, а заместо этого создаёт копию его в памяти
а можно сделать копию в памяти, ни разу не открыв его?! я что, так отстал от жизни?
Vlad Oshin (2008-10-08 15:47:00) [9]http://delphiworld.narod.ru/base/read_from_opened_file.html
clickmaker (2008-10-08 15:46:00) [10]CreateFile(...,FILE_SHARE_READ or FILE_SHARE_WRITE,...)