Verhalten Inhaltsplugins bei Dateien mit falscher Extension

German support forum

Moderators: Hacker, Stefan2, white

User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Verhalten Inhaltsplugins bei Dateien mit falscher Extension

Post by *Dalai »

Hallo Gemeinde :),

mir ist gerade beim Sortieren meiner Bilder aufgefallen, dass einige davon eine falsche Extension haben (JPG statt PNG).

Nun habe ich versucht, diese Bilder mittels einer Suche mit Plugins (Plugin "Image Info", Feld "Compression" !enthält "Huffman") aufzufinden, um wirklich alle zu erfassen. Problem: die Suche fand keine Ergebnisse. Ich fragte mich natürlich, warum das so ist und ging dem nach, indem ich eine benutzerdef. Spaltenansicht erstellte.

Und nun wird's interessant: Nur wenige Plugins geben überhaupt Informationen zur falsch benannten Bilddatei aus. Konkret geht's um die Plugins ImgSize, Image Info und TrID; letzteres hab ich nur in den Test einbezogen, um zu prüfen, ob überhaupt Infos ausgegeben werden. Also erstellte ich dieses neutrale Testbild (PNG-Format, benannt aber PNG.jpg) und fand dort dasselbe Phänomen vor: ImgSize und Image Info geben zum falsch benannten Bild keinerlei Infos aus, TrID schon. Benennt man das Bild um (bzw. kopiert es) nach PNG.png, liefern alle Plugins Infos zur nun korrekt benannten Datei.

Fragen:
  • Warum ist das so?
  • Liegt das an der Plugin-Schnittstelle und wenn ja, warum gibt dann TrID Informationen auch zur "falschen Datei" aus?
  • Oder liegt es an den Plugins?
  • Hat jemand Ideen, wie man auf andere Weise falsch benannte Bilder ausfindig machen kann? Momentan nutze ich TrID dafür, aber die Suche dauert sehr lange und lastet die CPU voll aus. Gibt's vielleicht ein Plugin, das die ersten 10 Bytes des Dateiinhalts durchsuchen kann?
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
kanu969
Senior Member
Senior Member
Posts: 259
Joined: 2007-11-12, 21:26 UTC
Location: Germany

Post by *kanu969 »

Hallo Dalai,

zum ersten Teil kann ich nichts sagen, aber ev. zur Suche:

Soweit ich weiß, enden alle jpg/jpeg auf "FF D9", das ist im Textformat

Code: Select all

ÿÙ
Ev. kann man da mit einer Batch was machen oder über die TC-Suche "enthält Text nicht" alle falsche aussortieren. Dann bleiben noch die, die zufällig die Zeichenfolge drin haben. Kann es im Moment leider nicht probieren, kenn mich auch mit regexp nicht so doll aus.

Irgendwie solls auch sowas wie "grep" für Windows geben.

HTH
kanu
TC #14485 8.51a auf W7-64 und Mageia4
User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Leider hilft das nicht weiter. Die Dateien komplett nach Inhalt zu durchsuchen, ist ja nicht so wirklich sinnvoll. Das belastet die Platte und dauert ewig. Mit der Textsuche nach Hex "FF D9" findet der TC jedenfalls alle möglichen anderen Dateitypen (MP3, MP4, FLV etc), aber auch PNGs; damit komme ich also auch nicht weiter.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

Ein Programm für diesen Zweck zu finden dürfte ziemlich schwierig werden und wenn ist dann mit Sicherheit noch manuelles Nacharbeiten angesagt.

Letztendlich läuft es ja auf einen Signaturen/Header-Scan hinaus.
Eine mir bekannte Möglichkeit dafür wäre z.B. das mittlerweile leider eingestellte Programm Extractor.
Hier im Web-Archiv zu finden.
Die letzte Version 2.5 zum Download hier zu suchen. (einen direkten Link poste ich mal lieber nicht da auf One-Click-Downloader verwiesen wird)
Schau es dir mal an, ich denke es lässt sich für deine Zwecke nutzen.


Edit:
Ich merke gerade dass das mir bisher unbekannte TrID mehr oder weniger auf dem selben Prinzip beruht wie Extractor.
Letzteres scheint aber schneller zu sein und vor allem komfortabler zu bedienen.
Last edited by milo1012 on 2013-06-05, 14:32 UTC, edited 1 time in total.
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1050
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Kann das Problem mit TrID nicht nachvollziehen. Version 0.1.2b mit aktuellen Defs von Pontello.

Spalte Match 0 zeigt immer das korrekte Format.

Anbei ne Def-Datei nur mit JPG/PNG. Kann mann selber aus den XML-Defs mittels TrIDDefsPack.exe erstellen. Vielleicht läuft die Suche damit schneller.

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="triddefs.trd"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="triddefs.trd"

UklGRrAEAABUUklEREVGTgQAAAAFAAAAREVGU5gEAABERUYg8gAAAERBVEEmAAAAUEFUVB4AAAAC
AAAAEACJUE5HDQoaCgAAAA1JSERSJQAEAGFOSW1JTkZPvAAAAFRZUEUqAFBvcnRhYmxlIE5ldHdv
cmsgR3JhcGhpY3MgKHdpdGggQW5pbWF0aW9uKUVYVCADAFBOR05BTUUUAGJpdG1hcC1hcG5nLnRy
aWQueG1sVVNFUg4ATWFyY28gUG9udGVsbG9SVVJMLQBodHRwOi8vd3d3LnZsYWQxLmNvbS9+dmxh
ZGltaXIvcHJvamVjdHMvYXBuZy9GTlVNBAAdAAAATUFJTBIAbWFyY29wb25AZ21haWwuY29tREVG
ICoBAABEQVRBIgAAAFBBVFQaAAAAAwAAAAQAiVBORwwABABDZ0JJHAAEAElIRFJJTkZP+AAAAFRZ
UEUpAFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKEFwcGxlIHZhcmlhbnQpRVhUIAMAUE5HTkFN
RRQAYml0bWFwLWlwbmcudHJpZC54bWxVU0VSBABPbGVnUkVNIDwAUE5HIGJpdG1hcCB3aXRoIGFu
IGFkZGl0aW9uYWwgQXBwbGUncyBzcGVjaWFsIGNodW5rIG9mIGRhdGEuUlVSTDIAaHR0cDovL21v
ZG15aS5jb20vd2lraS9pbmRleC5waHAvSXBob25lX1BOR19pbWFnZXNGTlVNBAA1AAAATUFJTBIA
c3VyZmVyNTZAZ21haWwuY29tREVGIKIAAABEQVRBEgAAAFBBVFQJAAAAAQAAAAMA/9j/AElORk+A
AAAAVFlQRQsASlBFRyBCaXRtYXBFWFQgAwBKUEdOQU1FFABiaXRtYXAtanBlZy50cmlkLnhtbFVT
RVIOAE1hcmNvIFBvbnRlbGxvRk5VTQQATQAAAE1BSUwSAG1hcmNvcG9uQGdtYWlsLmNvbUhPTUUQ
AGh0dHA6Ly9tYXJrMC5uZXRERUYg6AAAAERBVEFMAAAAUEFUVEQAAAADAAAAIwAAAAAMalAgIA0K
hwoAAAAUZnR5cGpwMiAAAAAAanAyIAAAACQADgBqcDJoAAAAFmloZHIAAEIABQBicGNjB0lORk+M
AAAAVFlQRRQASlBFRy0yMDAwIEpQMiBiaXRtYXBFWFQgAwBKUDJOQU1FFgBiaXRtYXAtanBlZzJr
LnRyaWQueG1sVVNFUg4ATWFyY28gUG9udGVsbG9GTlVNBAAVAAAATUFJTBIAbWFyY29wb25AZ21h
aWwuY29tSE9NRRAAaHR0cDovL21hcmswLm5ldABERUYgygAAAERBVEEeAAAAUEFUVBYAAAABAAAA
EACJUE5HDQoaCgAAAA1JSERSSU5GT5wAAABUWVBFGQBQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNz
RVhUIAMAUE5HTkFNRRMAYml0bWFwLXBuZy50cmlkLnhtbFVTRVIOAE1hcmNvIFBvbnRlbGxvUlVS
TB4AaHR0cDovL3d3dy5saWJwbmcub3JnL3B1Yi9wbmcvRk5VTQQANgIAAE1BSUwSAG1hcmNvcG9u
QGdtYWlsLmNvbQA=
Last edited by ZoSTeR on 2013-06-05, 14:43 UTC, edited 2 times in total.
User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ZoSTeR wrote:Kann das Problem mit TrID nicht nachvollziehen. Version 0.1.2b mit aktuellen Defs von Pontello.

Spalte Match 0 zeigt immer das korrekte Format.
Ich habe auch nichts anderes behauptet. Die anderen genannten Plugins zeigen keine Informationen an.
milo1012 wrote:Letztendlich läuft es ja auf einen Signaturen/Header-Scan hinaus.
Ja, TrID macht ja sowas, aber die dadurch entstehende CPU-Last (über einen längeren Zeitraum) beim Durchsuchen von Massen von Bildern stört natürlich...

Ich schau mir den Extractor mal genauer an.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1050
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Gibt sonst das "file" Kommando unter Linux.

Hier nen Windows-Port. Scheint mir erheblich schneller als TrID.
User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Irgendwie peile ich die Bedienung des Extractor nicht. Wie kann ich ihm denn ein Verzeichnis (inkl. aller Unterverzeichnisse) zu fressen geben? Sowas wie "C:\Pfad\*.*" nimmt er nicht. Es geht mir ja um ganze Verzeichnisbäume, die auch immer mal wieder inhaltlich wechseln.

Was mit ebenfalls gegen den Strich geht: die Zeitstempel der "extrahierten" Dateien sind geändert, d.h. auf die aktuelle Zeit gesetzt. Vom Original übernehmen wäre schon schick. Aber ohne Möglichkeit, ganze Strukturen zu verarbeiten, nutzt mir das Programm sowieso nichts...

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
herman5
Junior Member
Junior Member
Posts: 43
Joined: 2012-08-20, 16:39 UTC

Post by *herman5 »

Es wäre interessant zu wissen wieviele Bilder es sind:
Alle Bilder in ein Verzeichnis packen irfanView besorgen ->
Einstellungen -> Datei Handlng -> Umbenennen Anbieten ->
Erstes Bild im Verzeichnis mit IView laden und per Space zum nächsten springen
und bei Frage einfach 'J' drücken...

HTH
herman5
Junior Member
Junior Member
Posts: 43
Joined: 2012-08-20, 16:39 UTC

Post by *herman5 »

PS: Falls die Strucktur erhalten bleiben soll alle Dateinamen in eine Textdatei und mit Iview eine Slidshow starten
(sollte theoretisch auch funken :))
User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

herman5 wrote:Es wäre interessant zu wissen wieviele Bilder es sind:
Viele! Es geht um viele Gigabytes mit Hunderten oder gar Tausenden von Dateien. Alle manuellen Methoden fallen also flach. Dazu kommt, dass ich eine solche "Erkennungsaktion" immer mal wieder durchführen muss, weil sich der Inhalt der Verzeichnisstruktur geändert hat.
Alle Bilder in ein Verzeichnis packen
Das geht schon allein wegen der Menge nicht, weil es da garantiert gleichnamige Dateien in unterschiedlichen Verzeichnissen gibt.

-----

Der Windows-Port von file gefällt mir ganz gut. Ich hab zwar noch nicht gefunden, wie man dort eine rekursive Verarbeitung anleiern kann, aber im Zweifel wird wohl der Parameter -f mit Inputfile herhalten müssen. Schade nur, dass damit keine direkte Verarbeitung im TC möglich ist :-(.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1050
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Hier mal nen ganz anderer Ansatz:

Man nehme ein geeignetes, schnelles Plugin (zB FileX) und benennt das ganze Verzeichnis und die Plugindateien um.
Dh aus \FileX wird \Plugins\wdx\DetectX\DetectX.wdx usw.

Jetzt in der wincmd.ini (Nummer anpassen):

Code: Select all

[ContentPlugins]
10 = %Commander_Path%\Plugins\wdx\DetectX\DetectX.WDX
10_detect = "[0]=255 & [1]=216 & [2]=255"
Hiermit werden nur JPEGs (Signatur FF D8 FF) gefunden. Jetzt noch irgendnen Attribut als Filter in der Suche, zB "DetectX Dateinamenlänge > 0" UND "TC Erweiterung != jpg"

PNG wäre:

Code: Select all

10_detect = "[1]="P" & [2]="N" & [3]="G""
Dh [Offset] = "Character" oder dez. Bytewert. AnyCmd hat ne sehr ausführliche Beschreibung der Detect-Parameter.

Die TrID XML Dateien helfen bei den Signaturen.
Last edited by ZoSTeR on 2013-06-05, 18:04 UTC, edited 1 time in total.
User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ZoSTeR wrote:Hier mal nen ganz anderer Ansatz:
Hab ich probiert, mit beiden vorgeschlagenen "Signaturen" (PNG und JPEG/JFIF) aber das umbenannte Plugin zeigt keinerlei Feld an, das ich auswählen könnte. Mach ich was falsch?
AnyCmd hat ne sehr ausführliche Beschreibung der Detect-Parameter.
Ja, im SDK für Lister-Plugins (Abschnitt ListGetDetectString) ist auch sowas drin und im Prinzip hast du mich auf eine Idee gebracht, denn eigentlich könnte man sowas nutzen:

Code: Select all

18_detect="EXT="JPG" & !(FINDI("JFIF"))"
Alle Dateien mit Extension JPG suchen, in denen aber (innerhalb der ersten 8K) kein "JFIF" auftaucht. Ist eigentlich genau das, was ich brauche, aber in Verbindung mit dem FileX bzw. DetectX bekomme ich es nicht hin, weil für das DetectX kein Feld verfügbar ist.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1050
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Erstmal mit "Benutzerdefinierten Spalten" testen. Sollte als neues Plugin erscheinen. Dran denken auch die .wdx Dateien umzubenennen.

Edit:

Code: Select all

10_detect = "EXT="JPG" & !(FINDI("JFIF")) | EXT="PNG" & !(FINDI("PNG"))"
läuft bei mir.

Dateien:
c:\Program Files\TotalCmd\Plugins\wdx\DetectX\DetectX.lng
c:\Program Files\TotalCmd\Plugins\wdx\DetectX\DetectX.wdx
c:\Program Files\TotalCmd\Plugins\wdx\DetectX\DetectX.wdx64
c:\Program Files\TotalCmd\Plugins\wdx\DetectX\ReadMe.txt

Ini:
10 = %Commander_Path%\Plugins\wdx\DetectX\DetectX.WDX
10_detect = "EXT="JPG" & !(FINDI("JFIF")) | EXT="PNG" & !(FINDI("PNG"))"
Last edited by ZoSTeR on 2013-06-05, 18:20 UTC, edited 1 time in total.
User avatar
Dalai
Power Member
Power Member
Posts: 9977
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ZoSTeR wrote:Erstmal mit "Benutzerdefinierten Spalten" testen. Sollte als neues Plugin erscheinen. Dran denken auch die .wdx Dateien umzubenennen.
Das war mal wieder ein Layer-8-Problem ;). Ja, so ist das, wenn man sich beim Umbenennen vertippt. Dabei hatte ich das Problem vor ein paar Tagen erst :lol:...
Plugin zeigt nun die Felder sauber an. Mal seh'n, was der Test so bringt...

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Post Reply