对于我想读取 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'
.
因为它说权限被拒绝(编辑:我对文件有“完全控制”权限),所以我也在提升的 cmd 窗口上尝试了它。同样会发生。当 Chrome 未运行时,它可以正常工作。我想要这样的东西(.net 上的文件共享)。
我认为 Chrome 将允许共享读取访问,因为我已经看到这个应用程序这样做了。
编辑:
我想我错了。正如 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 是第三方应用程序。那么这怎么可能呢?