how to detect corrupted file

frederic chaume frederic.chaume at gmail.com
Tue Apr 25 08:39:45 BST 2023


Hi Paul

in fact that's normal, the command returns an exception during an 
execution, not an error and in DOS I don't know how to redirect such 
errors to a file
Now I'm wondering that such exception should also happened during 
different execution under digikam and may be such exception are logged 
in DB (I'm using sqlite , is there a browser that can be used?) or may 
be visible using debug. I know how to set debug option in DK but don't 
remember how to get access to the console

Regards
Frederic




Le 20/04/2023 à 09:42, Paul Norman a écrit :
>
> Thanks Fredric.
>
> Your way
>
> %exiv2FullPath%   -pp -q "%i" >> results.txt
>
> looks correct—as of course it is,
> but on Windows 10 only yields:
>
> Preview 1: image/jpeg, 320x240 pixels, 13855 bytes
> Preview 1: image/jpeg, 320x240 pixels, 13235 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
>
> When I use:
>
> del results.txt & for /r  %i in (*.jpg *.jpeg *.png *.crw *.dng) do 
> %exiv2FullPath%  "%i"  -pp -q  >> results.txt
>
> It is of course ignoring my incorrectly placed options/switches(?)  
> -pp -q – and so instead I get the full results set, as if for just:
> %exiv2FullPath%  "%i"
> —like:
>
> File name       : E:\Digikam\images\Phone\2022 
> Apr\OpenCamera\IMG_20201011_191442.jpg
> File size       : 2547402 Bytes
> MIME type       : image/jpeg
> Image size      : 4096 x 3072
> Thumbnail       : image/jpeg, 13855 Bytes
> Camera make     : motorola
> Camera model    : moto g(7) power
> Image timestamp : 2020:10:11 19:14:42
> File number     :
> Exposure time   : 1/33 s
> Aperture        : F2
> Exposure bias   :
> Flash           : No, auto
> Flash bias      :
> Focal length    : 3.9 mm
> Subject distance:
> ISO speed       : 155
> Exposure mode   :
> Metering mode   : Center weighted average
> Macro mode      :
> Image quality   :
> White balance   : Auto
> Copyright       :
> Exif comment    :
>
> etc ...
>
> ... Which is what I thought we needed :-)
> and so why wasn’t aware my placement of the switches/options was 
> incorrect.
>
> I have some self corrupted .jpg(s) in my directory tree,
> but I am not seeing them in the above list of the style of:
> %exiv2FullPath%   -pp -q "%i" >> results.txt
>
> Preview 1: image/jpeg, 320x240 pixels, 13855 bytes
> ... etc
>
> — And that alos isn't showing me the file path/names of any of them.
>
> Paul
>
>
> On 14/04/2023 10:59 pm, frederic chaume wrote:
>> Hi Paul
>>
>> 1st feedback,
>> syntax of command should be
>> %exiv2FullPath%   -pp -q "%i" >> results.txt
>>
>> and seems the >> doens't catch the exception,
>>
>> the exception was missing in the result.txt, but really exist
>>
>> D:\images\test> %exiv2FullPath%  -pp -q 
>> 2023-02-28\P2280067_DxO-corrupted.jpg
>> Exiv2 exception in print action for file 
>> 2023-02-28\P2280067_DxO-corrupted.jpg:
>> 2023-02-28\P2280067_DxO-corrupted.jpg: The file contains data of an 
>> unknown image type
>>
>> regards
>> Frederic
>>
>>
>> Le 14/04/2023 à 12:07, frederic chaume a écrit :
>>> Hi Paul
>>>
>>> thanks a lot, that will be very useful, I will test it next week
>>>
>>> Fyi , I got the options from https://exiv2.org/manpage.html
>>>
>>> regards
>>> frederic
>>>
>>>
>>>
>>>
>>> Le 14/04/2023 à 05:54, Paul Norman a écrit :
>>>>
>>>> Hi Bob,
>>>>
>>>> Yes file names passed in that way can have unknown things happening 
>>>> behind the scenes :-)
>>>>
>>>> PowerShell can help here, but Dos can still do it effectively and 
>>>> quickly, as you are working in it, here are some dos shell command 
>>>> lines you could try executing.
>>>> (If you find this working, it could be converted into a batch file, 
>>>> once any other needed modifications have been worked out later. 
>>>> Note that %-s would need to be changed to %% in a .bat batch file.)
>>>>
>>>> I downloaded a working copy of from exiv2 from
>>>> https://exiv2.org/download.html#license
>>>>
>>>> Looks like you got your option commands from(?):
>>>> https://exiv2.org/sample.html
>>>>
>>>> Locally, open a dos prompt up at the top of the directory tree you 
>>>> want to explore.
>>>> If all you can see is PowerShell, then when that opens type :-
>>>>
>>>> cmd <Enter>
>>>>
>>>> Again, make sure you are in the top of the directory tree you want 
>>>> to explore.
>>>>
>>>> The overall system PATH does not appear to need alteration, as 
>>>> exiv2.exe when called directly, appears to find all that it needs 
>>>> locally.
>>>> So first set your exiv2.exe file's full location, change the path 
>>>> to fit your setup, using quotes especially if you have any spaces 
>>>> in your .exe directory path. :-
>>>>
>>>> set exiv2FullPath="G:\utils\exiv2-0.27.6-2019msvc64\bin\exiv2.exe"
>>>>
>>>> And alter the below to your situation (change the *.exts to 
>>>> whatever you need, fewer or more, leaving a space between them):
>>>>
>>>> Then execute each of these  lines one after the other :-
>>>>
>>>> del results.txt & for /r  %i in (*.jpg *.jpeg *.png *.crw *.dng) do 
>>>> %exiv2FullPath% "%i"  -pp -q >> results.txt
>>>>
>>>> find ": 0 x 0" results.txt > possible_corrupt.txt
>>>>
>>>> notepad results.txt & notepad possible_corrupt.txt
>>>>
>>>> <-- Try the above first, but if necessary, in the second command 
>>>> line above, change ": 0 x 0" to whatever is signifying your corrupt 
>>>> file(s) as shown in the file: results.txt. Copy and paste the 
>>>> needed text out of results.txt between the "quote marks" as I 
>>>> suspect otherwise invisible tabs U+0009 could be being used.
>>>>
>>>> Close the notepads: for results.txt and poss_corrupt.txt - when you 
>>>> want to run the command again over the same directory tree.
>>>>
>>>> At worst you can scan though the file: results.txt manually in 
>>>> notepad.
>>>>
>>>> N.B.
>>>> Just note that the file: results.txt  will get overwritten each 
>>>> time you run the main command, so copy or rename it first if you 
>>>> want to keep it :-)
>>>>
>>>> Hope that this will help you,
>>>>
>>>> Kindest regards,
>>>> Paul
>>>>
>>>>
>>>> On 14/04/2023 2:16 am, plowmail2010 at gmail.com wrote:
>>>>>
>>>>> Using Windows 7.
>>>>>
>>>>> I could not get wildcards to work in exiv2.
>>>>> The manual says  "$ exiv2 *.jpg Prints a summary of the Exif 
>>>>> information for all JPEG files in the directory."
>>>>> But that gives me "*.jpg: Failed to open the file".
>>>>>
>>>>> Also, while fiddling with this, the length of exiv2.exe went to 
>>>>> 0.  Maybe the program got tired of my fiddling, or my computer is 
>>>>> about to explode.
>>>>>
>>>>> Bob
>>>>>
>>>>>
>>>>> On 4/13/2023 7:02 AM, frederic chaume wrote:
>>>>>> Hi All
>>>>>>
>>>>>> I found an option using exiv2 under windows
>>>>>>
>>>>>> >bin\exiv2.exe -pp -q P2280067_DxO-corrupted.jpg
>>>>>> Exiv2 exception in print action for file P2280067_DxO-corrupted.jpg:
>>>>>> P2280067_DxO-corrupted.jpg: The file contains data of an unknown 
>>>>>> image type
>>>>>>
>>>>>> >bin\exiv2.exe -pp -q P2280067_DxO.jpg
>>>>>> Preview 1: image/jpeg, 317x237 pixels, 17356 bytes
>>>>>>
>>>>>> >bin\exiv2.exe -pp -q .\P2280067.ORF
>>>>>> Preview 1: image/jpeg, 160x120 pixels, 9080 bytes
>>>>>> Preview 2: image/jpeg, 3200x2400 pixels, 1060974 bytes
>>>>>>
>>>>>> I think that could be a good solution to find corrupted jpeg. 
>>>>>> Based on this I have some thought
>>>>>> - as exiv2 is native with Digikam, I guess such error could be 
>>>>>> visible? *Is there some "debug level" or some logs somewhere that 
>>>>>> could report such errors ?*
>>>>>> - I'm not expert on coding so don't know how to translate such 
>>>>>> command to a recursive search on a set of folders?
>>>>>> - seems to apply to raw also , but I don't have corrupted raw to 
>>>>>> perform the test
>>>>>>
>>>>>> thanks to share your feedbacks and may be other option
>>>>>>
>>>>>> Frederic
>>>>>>
>>>>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/digikam-users/attachments/20230425/c41fc0d3/attachment-0001.htm>


More information about the Digikam-users mailing list