Для приложения я хочу прочитать файлы кеша Google Chrome. Проблема заключается в том, что Chrome работает, файлы открываются и могут быть обновлены в процессе.Чтение из файла, который используется другим процессом
Так что, когда я попытался
data_1 = open("C:\Users\user\AppData\Local\Google\Chrome\User Data\Default\Cache\data_1")
он дал мне
IOError: [Errno 13] Permission denied: 'C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cache\\data_1'
.
Поскольку это говорит, что разрешение отклонено (EDIT: У меня есть разрешение «full controll» на файл). Я также пробовал его на повышенном cmd-окне. То же самое происходит. Он отлично работает, когда Chrome не работает. Я хочу что-то вроде this (FileShare on .net).
Я думаю, что Chrome предоставит доступ к общедоступному доступу, потому что я видел приложение this, выполняющее его.
Edit:
Я думаю, что я не прав. Как сказал lulyon, кажется, Chrome блокирует файл. Потому что я попробовал его на vb.net, как:
Dim d As New FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)
он говорит:
The process cannot access the file because it is being used by another process.
Сначала я думал, что ChromeCacheView копирует файл в другое место. Поэтому я сделал более глубокий взгляд с помощью монитора процессов. Проверьте этот снимок экрана. Разве это не означает, что обе приложения используют одни и те же файлы?
Я не думаю, что будет какое-либо понимание между обеими, как ChromeCacheView является приложением третьей стороны. Итак, как это возможно?
Но мне не нужен доступ для записи. Если хром предотвращает доступ к чтению, то как это делают приложения, такие как ChromeCacheView? – rahul
@rahul Итак, мы должны выяснить, что означает «Разрешение отказа». Ответ вам позже. – lulyon
@rahul Это потому, что у вашего текущего пользователя нет доступа к папке, содержащей ваш файл кэша, или ваш файл кэша не читается для вашего текущего пользователя? Проверь это. – lulyon