Picasa3 由于磁盘错误,无法对文件执行写操作

整理了一下图片,用Picasa3导出的时候提示 由于磁盘错误,无法对文件执行写操作 。磁盘可能已满或为只读。

但是我检查了各种地方发现并没有磁盘已满,或者文件只读。网上搜了一下没发现什么有价值的线索。于是尝试将导出失败的文件从相册删除,然后可以继续导出了。问题是900多个文件,删了半天删除了十几个,问题是还不知道有多少个是存在问题的,一个个删除也不是办法,最终还是决定上调试器解决这个问题,猜测应该是出问题直接退出了。

要解决也简单,把出问题的地方直接跳过就ok了。

od载入,下断MessageBoxA和MessageBoxW,最终会会断在w上。往回跟就找到出问题的地方了。

0074079C   .  FFD0          call eax
0074079E   .  85C0          test eax,eax
007407A0      74 46         je XPicasa3.007407E8
007407A2   .  68 9402CB00   push Picasa3.00CB0294                    ;  ASCII "CImageOutput::filewriteerr"
007407A7   .  B8 4002CB00   mov eax,Picasa3.00CB0240                 ;  ASCII "Unable to write all files due to a disk error. The disk may be full or read-only."
007407AC   .  C74424 38 FFF>mov dword ptr ss:[esp+0x38],0xFFFF
007407B4   .  E8 A7DD2600   call Picasa3.009AE560
007407B9   .  8B00          mov eax,dword ptr ds:[eax]
007407BB   .  83C4 04       add esp,0x4
007407BE   .  85C0          test eax,eax
007407C0   .  74 15         je XPicasa3.007407D7
007407C2   .  83C0 04       add eax,0x4
007407C5   .  6A 00         push 0x0
007407C7   .  50            push eax
007407C8   .  33C0          xor eax,eax
007407CA   .  E8 31FF2300   call Picasa3.00980700
007407CF   .  83C4 08       add esp,0x8
007407D2   .  E9 21020000   jmp Picasa3.007409F8
007407D7   >  33C0          xor eax,eax
007407D9   .  50            push eax

要解决也简单,直接把je改成jmp就可以了。从此导出的时候遇到错误不会中断了,会继续进行后续的导出。

事实证明,相册一共917个项目

导出之后只有866个,一个个排查删除,那得删到猴年马月 :mrgreen: 

最后提供个patch来解决这个问题:

 

下载链接:链接:https://pan.baidu.com/s/1LE28x4zqyRwTXi_O3KKibw
提取码:4zij
复制这段内容后打开百度网盘手机App,操作更方便哦

补丁校验信息:

文件名: I:\Program Files (x86)\Google\Picasa3\picasa3-patch.exe
文件大小: 1018368 字节 (994.50 KB)
修改日期: 2020-01-30 22:14
MD5: 0c0f6b0699424b85236d8123a36cd9f8
SHA1: 022399edc91b49e2066f10caf5bb08239ae6c0b7
SHA256: a7a440dc19329f7b335f1ddd3f2c3a791c8d156f0337114f0df08863acead0f9
CRC32: a8b6d698

请自行校验md5值

 

分享文章:

猜你喜欢:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注