• Herzlich willkommen im "neuen" DSLR-Forum!

    Wir hoffen, dass Euch das neue Design und die neuen Features gefallen und Ihr Euch schnell zurechtfindet.
    Wir werden wohl alle etwas Zeit brauchen, um uns in die neue Umgebung einzuleben. Auch für uns ist das alles neu.

    Euer DSLR-Forum-Team

  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • DSLR-Forum Fotowettbewerb neu erfunden!
    Nach wochenlanger intensiver Arbeit an der Erneuerung des Formates unseres internen Fotowettbewerbes ist es Frosty als Moderator
    und au lait als Programmierer gelungen, unseren Wettbewerb auf ein völlig neues Level zu heben!
    Lest hier alle Infos zum DSLR-Forum Fotowettbewerb 2.0
    Einen voll funktionsfähigen Demowettbewerb kannst du dir hier ansehen.
  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2024
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien der Eigenmarken "Upscreen", "Brotec", "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs März 2024.
    Thema: "Arbeitsmittel"

    Nur noch bis zum 31.03.2024 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • Frohe Ostern!

    Wir wünschen allen DSLR-Forum Nutzern, ihren Familien und Freunden sowie unseren Sponsoren und Partnern und deren Familien und Freunden ein frohes Osterfest.

    Euer DSLR-Forum Team!
WERBUNG

Tool zum Ordner vergleichen

mkoelsch

Themenersteller
Hi,

also folgendes: wenn ich auf Events Fotos mache lasse ich die erst verkleinern (und dabei auch mein (c) draufschreiben) und miste die dann aus, weil es schneller geht mit den kleinen Bildern zu arbeiten. Die Bilder die nicht so toll sind, sei es weil verwackelt, unscharf, Motiv oder Licht schlecht usw lösche ich dann daraus. Die original-Bilder rühe ich quasi gar nicht an.

Nun aber die Frage, wie kann ich am einfachsten die originalen Gegenstücke zu den verkleinerten und nicht gelöschten Bildern auswählen (Namen sind identisch mit den der kleinen)?


Hat jemand eine Idee?


// und nein, mit den großen Dateien von Beginn an zu hantieren wäre unvorteilhaft, weil mein PC (P4 mit 2,5 Ghz, 1 GB RAM und ACDsee 8) nicht so schnell hinterher kommt die anzuzeigen. Da ist es mit den kleinen Bildern viel angenehmer, weil schneller. Oder gibt es ein besseres Programm als ACDsee um die Bilder anzusehen?
 
das suche ich auch, will schon fast selber schreiben , das braucht doch jeder oder ?

einen Abgleich, von noch vorhandenen JPG zu RAW, also gelöschte JPG sollen gelöschte RAW werden....
 
Das geht supergenial mit "BeyondCompare"
Ist eine Shareware - zu finden auf http://www.scootersoftware.com/

Damit kannst Du Ordner/Unterordner vergleichen, die z.B. nur die Files zeigen lassen, die es nur auf der einen Seite gibt (nämlich genau die Originale die Du auf der anderen seite als miniatur gelöscht hast) und und und
Du kannst direkt mit BeyondCompare Dateien auf einer oder beiden Seiten löschen oder eben rüberkopieren/synchronisieren
Das geht auch in ZIPs und über FTP

Du kannst die Dateien selbst auch vergleichen. Bei Textdateien dann Zeilen/Zeichenweise. Auch mit Binärfiles geht das.
Für Bilddateien gibt es ein freies PlugIn. Da kannst Du sehen, welche Pixel anders sind etc.

Das Programm ist der absolute Hammer. Ich nutze es beruflich und Privat extrem häufig und hatte es seinerzeit sofort registriert/gekauft.
JEDEN Cent wert!
 
jar schrieb:
das suche ich auch, will schon fast selber schreiben , das braucht doch jeder oder ?

einen Abgleich, von noch vorhandenen JPG zu RAW, also gelöschte JPG sollen gelöschte RAW werden....

Du hast aber auch immer ein feines Näschen für die kleinen Problemchen und Macken im Computeralltag der digitalen Fotografie-Begeisterten... (y)

Ärgere ich mich auch immer drüber, denn ich schieße in Jpeg und Raw.
Kann man wunderbar schnell die Jpegs durchschauen und dort den Schrott löschen. Dann muss man immer von Hand die zugrunde liegenden RAWs löschen, die bei mir meist in einem anderen Ordner liegen.
Aufgrund der unterschiedlichen Dateitypen (*.nef und *.jpg) klappt ein Vergleich mit solchen Ordnervergleichsprogrammen nicht - mir ist jedenfalls kein Programm bekannt, was nur anhand des Dateinamens Dateien in zwei Ordnern markiert.

Für die normalen Ordnervergleiche nehme ich FileSync.
Das hat einen ähnlichen Funktionsumfang wie das oben genannte "BeyondCompare" - ich vermute aber FileSync ist etwas rudimentärer. Damit sollte das im Originalpost genannte Problem auch lösbar sein, wenn es sich nur um Original Jpegs und verkleinerte Jpegs in verschiedenen Ordnern mit gleichem Dateinamen handelt.

Gruß dudel
 
Also Windows bringt sowas in Kleinformat doch eigentlich schon mit.
Rechtsklick auf den Desktop --> "Neu" und dort "Aktenkoffer" auswählen.
Wenn die Namen wie du schreibst identisch sind, genügt das ja vielleicht schon :)
 
elastico schrieb:
Das geht supergenial mit "BeyondCompare"
Ist eine Shareware - zu finden auf http://www.scootersoftware.com/

Damit kannst Du Ordner/Unterordner vergleichen, die z.B. nur die Files zeigen lassen, die es nur auf der einen Seite gibt (nämlich genau die Originale die Du auf der anderen seite als miniatur gelöscht hast) und und und
Du kannst direkt mit BeyondCompare Dateien auf einer oder beiden Seiten löschen oder eben rüberkopieren/synchronisieren
Das geht auch in ZIPs und über FTP

Du kannst die Dateien selbst auch vergleichen. Bei Textdateien dann Zeilen/Zeichenweise. Auch mit Binärfiles geht das.
Für Bilddateien gibt es ein freies PlugIn. Da kannst Du sehen, welche Pixel anders sind etc.

Das Programm ist der absolute Hammer. Ich nutze es beruflich und Privat extrem häufig und hatte es seinerzeit sofort registriert/gekauft.
JEDEN Cent wert!
Ich hab mir die Demo mal heruntergeladen, komme aber nicht so zurecht damit. Wenn ich zwei Ordner vergleichen lassen will, findet er keine Übereinstimmungen, da halt ein mal die Originale in 6 MP vorliegen und die verkleinerten Bilder 1,nochwas MP und auch viel kleiner sind.

Wie kann ich denn trotzdem die Bilder finden lassen. Mein Konkretes Beispiel:

Ich habe die Bilder von Wacken nach Tagen sortiert in den jeweiligen Ordnern direkt drinliegen (bsplw. 2006_08_03-Wacken usw). Die verkleinerten Bilder sind im Ordner "2006_08_03-05 - Wacken" in den Unterordnern "Bands" (der auch nochmal Unterordner mit den versch. Bandnamen hat), "Camping", "Zuschauer" und "Misc".
Ich hätte halt gerne mit der gleichen Struktur wie die kleinen Bilder sortiert sind die großen Bilder in einen neuen Ordner kopiert... wie mache ich das? :confused:
 
dudel schrieb:
@jar:
Also bei der Oberfläche helf ich Dir auch ein bißchen :angel:
dudel :D

da reden wir noch mal drüber, muss nur sehe welch prog sprache

bei LCC bin ich noch nicht soweit rsc einzubinden, mein vc 1,0 ist buggy , das qcwin auch nicht mehr aktuell und in qc kann ich keine Oberfläche bilden
 
Michael Kölsch schrieb:
Ich hab mir die Demo mal heruntergeladen, komme aber nicht so zurecht damit. Wenn ich zwei Ordner vergleichen lassen will, findet er keine Übereinstimmungen, da halt ein mal die Originale in 6 MP vorliegen und die verkleinerten Bilder 1,nochwas MP und auch viel kleiner sind.
Eine Übereinstimmung (also nicht rot markiert) geht natürlich nicht wenn sich die Dateien in Größe und Uhrzeit etc. unterscheiden (bzw. man müsste mal gucken, ob man da an den Optionen spielen kann)
Aber bei gleichem Dateinamen siehst Du, ob es die Datei auf beiden Seiten gibt oder nicht (und man kann die Ansicht filtern: nur anzeigen was auf beiden Seiten vorhanden ist, nur die zeigen die links oder nur die die rechts vorhanden sind etc.)

Wie kann ich denn trotzdem die Bilder finden lassen. Mein Konkretes Beispiel:

Ich habe die Bilder von Wacken nach Tagen sortiert in den jeweiligen Ordnern direkt drinliegen (bsplw. 2006_08_03-Wacken usw). Die verkleinerten Bilder sind im Ordner "2006_08_03-05 - Wacken" in den Unterordnern "Bands" (der auch nochmal Unterordner mit den versch. Bandnamen hat), "Camping", "Zuschauer" und "Misc".
Ich hätte halt gerne mit der gleichen Struktur wie die kleinen Bilder sortiert sind die großen Bilder in einen neuen Ordner kopiert... wie mache ich das? :confused:

Ich verstehe nicht ganz was Du da beschreibst.
Du kannst zwei Verzeichnisse vergleichen lassen und siehst, ob es ein Bild mit einem Namen in beiden Verz. gibt.
Du kannst dann Bilder von links nach rechts oder umgekehrt kopieren oder löschen etc.

Du kannst aber nicht eine Verzeichnis-Struktur nehmen und diese Struktur mit ganz anderen Daten an einer anderen Stelle erzeugen lassen - das hat ja mit Vergleichen nix mehr zu tun :)
 
elastico schrieb:
Eine Übereinstimmung (also nicht rot markiert) geht natürlich nicht wenn sich die Dateien in Größe und Uhrzeit etc. unterscheiden (bzw. man müsste mal gucken, ob man da an den Optionen spielen kann)
Aber bei gleichem Dateinamen siehst Du, ob es die Datei auf beiden Seiten gibt oder nicht (und man kann die Ansicht filtern: nur anzeigen was auf beiden Seiten vorhanden ist, nur die zeigen die links oder nur die die rechts vorhanden sind etc.)
Widerspricht sich das nicht grade was du hier schreibst?
Die verkleinerten Bilder die ich habe heißen so wie die großen originale, aber bis auf den Dateinamen ist sonst nichts gleich. Also kann ich die nicht abgleichen lassen oder wie?
Ich finde jendenfalls im Programm keine Übereinstimmung, habe aber vielleicht auch etwas nicht richtig eingestellt.


elastico schrieb:
Du kannst aber nicht eine Verzeichnis-Struktur nehmen und diese Struktur mit ganz anderen Daten an einer anderen Stelle erzeugen lassen - das hat ja mit Vergleichen nix mehr zu tun :)
Na ja, mit vergleichen hat es schon etwas zu tun, da ich die gleiche Struktur erzeugen möchte mit den gleichen Dateinamen erstellen, nur der Unterschied ist dass die großen Dateien dafür genommen werden sollen...
 
Nein das wiederspricht sich nicht. :D
Ich habe just keinen Windows-Rechner zur Hand um einen Screen-Shot zu machen.

Du hast einen Ordner: c:/großebilder
Darin die Dateien
1.jpg
2.jpg
3.jpg

Du hast einen anderen Ordner: c:/kleinebilder
Darin hast Du thumbnails kopiert von den o.g. Files und die heißen
1.jpg
2.jpg
3.jpg
Haben aber anderes Datum/Uhrzeit/Größe

Jetzt sagst Du BeyondCompare: Vergleich doch mal großebilder mit kleinebilder und Du siehst Du sowas:

1.jpg_____| 1.jpg
2.jpg_____| 2.jpg
3.jpg_____| 3.jpg

Also ein Match! Nur: die Dateien rechts (=kleinebilder) sind rot markiert, weil sie neuer sind als die linken (=großebilder) die grau dargestellt werden.

Nehmen wir an Du löschst das Thumbnail 2.jpg. Dann sieht der Vergleich so aus:

1.jpg_____| 1.jpg
2.jpg_____|
3.jpg_____| 3.jpg

Aha - da fehlt also ein Thumbnail! Du kannst also ganz einfach links die 2.jpg markieren und das File aus großebilder löschen (mit BC!)
Damit man bei zig hundert Files nicht alles von Hand markieren muss kannst Du sagen: "zeige mir nur die Files, die es NUR links gibt. Dann sieht die Ansicht so aus:

2.jpg_____|

weil es alle anderen Files auf beiden seiten gibt.
Nun kannst Du links einfach ein Ctrl+A machen und alles löschen. Dann bleiben nur die großen Bilder übrig, zu denen Du auch noch die Thumbnails hast.

Das habe ich mit ver-/abgleichen gemeint.
Das geht natürlich auch mit Unterverzeichnissen solange die Struktur und die Namen der Verzeichnisse links und rechts identisch sind.
 
elastico schrieb:
[sehr gute Erklärung mit Beispielen]
...
Das geht natürlich auch mit Unterverzeichnissen solange die Struktur und die Namen der Verzeichnisse links und rechts identisch sind.
Tjoar, wie auch oben schon erwähnt liegen die originalen Bilder alle in einem Verzeichnis und die verkleinerten sortiert nach biespielsweise Bandnamen usw in einem anderen.
Die Struktur bei den Ordnern ist also verschieden, folglich scheint es so als würde es dann auch nicht klappen :(
 
ich seh immer noch nicht wie die genannten Programme das folgende Problem lösen

ich stell mir eine kleines PRG vor

Vorgabe Dir

dort ein dir RAW und von dort

findfirst, erstes RAW/NEF z.B. 1.crw finden und schauen ob es ein Äquivalent .\(ober dir vom RAW) 1.jpg gibt wenn nicht ist das JPG gelöscht, und das RAW kann in die Tonne

findnext bis nur noch RAW existieren zu denen es auch JPG gibt

meiner Bilder DIR sehen so aus


2006/2006_04_15 dort alle JPG und ein Unterverzeichnis RAW mit den ....
2006/2006_04_15 schau ich schnell durch , lösche den Schrott und hab nun die RAW eine Treppe tiefer immer noch rumliegen
 
Ich möchte gerne noch einen weiteren Bedarf anmelden.
EDIT: sehe gerade, das jar eine ähnliche Lösung anstrebt

Problemstellung::eek:
50 JPG und 50 zugehörige RAW

F:\DCIM\255\ - hier stehen alle JPG drin
F:\DCIM\255\RAW - Unterordner von .\255 hier stehen alle RAW drin

Nun sortiere ich nach einer Fotoserie "grob" über die JPG Dateien die schlechten oder nicht benötigten Bilder aus. Übrig bleiben alle RAW, da es recht aufwendig ist, diese manuell zu löschen.


Ich hätte gerne::)

Einen Batch oder ein Tool, welches mir alle RAW sucht und verschiebt (in z.B. einen weitern Unterordner), zu denen kein JPG vorhanden ist.

Geht sowas? :confused:
 
mini Lösung gebastelt

in einem Bilderordner habe ich die Vorschau JPG zum schnellen durchsehen und löschen, leider werden die raw im Unterordner RAW nicht mitgelöscht, deswegen dieses VBS

suche im Unterordner RAW alle raws, wenn es dazu kein JPG Gegenstück ein Ordner höher gibt, verschiebe das RAW in den bak Ordner

der kann dann manuell gelöscht werden

so sind immer nur die RAW da zu denen es auch Vorschau JPG gibt, ausser es gibt keine JPG weil man nur in RAW fotografiert hat, dann sind die wenigstens
noch im BAK Ordner :lol:

Zeile 20 : hier kann das Start Laufwerk und Verzeichnis vorgegeben werden
Zeile 21 : der RAW Typ, TIF, NEF, CRW, CR2
Zeile 22 : das BAK Verzeichnis, welches wenn nicht vorhanden , erstellt wird

den Code kopieren und als raw_del.vbs speichern, viel Spass

Code:
'v3.6*****************************************************
' File:   Datei-Verzeichnis-Liste.vbs
' Autor:  dieseyer@gmx.de 
'         http://dieseyer.de
'*********************************************************
'
' NEW BUILD by J A R -> RAW_DEL_1.vbs
'
'
'
Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl
Dim WSHShell, fso, oArgs
Dim oFolders, oSubFolder, oFiles, Folder
Dim i, j, k, f, Text, jpgPfad, rawPfad, DateiX, VerzX, Verz(), Datei(), jpgDatei(), rawTyp, intLaenge, warte
Dim objFSO, out_text, START_drv_dir, bak_dir
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso      = WScript.CreateObject("Scripting.FileSystemObject")
set oArgs    = Wscript.Arguments 

START_drv_dir = "R:\test" ' kann angepasst werden auf das default Laufwerk und default BilderDIR
rawTyp = "tif"              ' RAW Type ;-) kann auch NEF , CRW, CR2 sein 
bak_dir = "bak"             ' im JPG Ordner wird ein bak erstellt, dorthin werden die überflüssigen RAW verschoben, kann jeder selber löschen
rawPfad = "\RAW"            ' da wollte jemand seinen RAW Ordner anders benennen :-)))
warte = 250                 ' hier kann man tunen 250 = 1/4 Sekunde


Dim oFSO, oFolder

' Globale Variablen für das Statusfenster
Dim oIEStatus, oTempFile, sTempFileName', WshShell

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(BrowseForFolder("Choose a folder (search in RAW)", 9, START_drv_dir))
'Set oFolder = oFSO.GetFolder("c:\test")
rawPfad = oFolder.Path & rawPfad
jpgPfad = oFolder.Path

i=0
'Wenn Ordner schon existiert, dann nicht neu erstellen
If FSO.FolderExists(jpgPfad & "\" & bak_dir & "\") = False Then
	'Ordner soll erstellt werden
	FSO.CreateFolder(jpgPfad & "\" & bak_dir & "\")
	Do While ( i<40 and not FSO.FolderExists(jpgPfad & "\" & bak_dir & "\") )
		WScript.Sleep 250
		i=i+1
	Loop
	
End If
 
if not fso.FolderExists( rawPfad ) then
  MsgBox rawPfad & "   existiert nicht!" & vbCRLF & vbCRLF & " . . . das ist das Ende.", , WScript.ScriptName
  WScript.Quit
End If

Set oFolders = fso.GetFolder( rawPfad )  
Set oFiles   = oFolders.Files

j=0
k=0

Call InitStatusWindow(oIEStatus)

f=0
For Each DateiX In oFiles
	If f = 0 Then
		f=f+1
		out_text = "working : " 
	Else
		f=0
		out_text = "        : " 
	End If
	'DateiX.Name
	Text=DateiX.Name
	out_text = out_text & DateiX.Name & vbCRLF
	Call WriteStatusText(oIEStatus, out_text )
	
	If Lcase(Right(DateiX.Name,3))=rawTyp Then ' wenn tif vorhanden
	   k=k+1
	   'MsgBox "1 " & rawPfad & "\" & Text, , WScript.ScriptName    
		Text=Lcase(Left(DateiX.Name, Len(DateiX.Name)-3)) & "jpg" ' suche jpg
		Text= jpgPfad & "\" & Text
	
   	If (fso.FileExists(Text)) Then ' jpg vorhanden
    	'j=j+1
    	'MsgBox "2 " & Text, , WScript.ScriptName    
      	'msg = filespec & " exists."
   	Else
		If FSO.FolderExists(jpgPfad & "\" & bak_dir & "\") = False Then
			MsgBox "Bei Erstellung des Ordners " & UCase(jpgPfad & "\" & bak_dir & "\") & " ist ein Fehler aufgetreten."
			WScript.Quit
		End If
		out_text = "MOVE : " & rawPfad & "\" & DateiX.Name & vbCRLF

		FSO.CopyFile (rawPfad & "\" & DateiX.Name), (jpgPfad & "\" & bak_dir & "\" & DateiX.Name) , True
		FSO.DeleteFile (rawPfad & "\" & DateiX.Name), True

		Call WriteStatusText(oIEStatus, out_text )
		WScript.Sleep (5 * warte )
		
   	End If
   	'Response.Write Text
	End If
	WScript.Sleep warte
Next

Set oFiles   = nothing
Set oFolders = Nothing
Call CloseStatusWindow(oIEStatus)


'MsgBox "FERTIG ! " 

'http://72.14.221.104/search?q=cache:S6jLbfL3kyQJ:www.aspheute.com/artikel/20020131.htm+fso.FileExists&hl=de&gl=de&ct=clnk&cd=1



'fso.MoveFile i.path, True

'http://www.google.de/search?hl=de&q=vbs+system+delete+move&meta=cr%3DcountryDE

sub CreateTempFile
  Dim tfolder, tname, tfile
  Const TemporaryFolder = 2

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set tfolder = objFSO.GetSpecialFolder(TemporaryFolder)
  sTempFileName = objFSO.GetTempName
  Set oTempFile = tfolder.CreateTextFile(sTempFileName)
  sTempFileName = tfolder.path & "\" & sTempFileName '"move del2bak" '
  Set tfolder = Nothing
  Set objFSO = Nothing
End Sub
  
Sub DeleteTempFile
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  objFSO.DeleteFile(sTempFileName)
  Set objFSO = Nothing
End Sub

Function InitStatusWindow(o_IEStatus)
  Dim WSHShell
  
  Set o_IEStatus = WScript.CreateObject("InternetExplorer.Application")
  With o_IEStatus
	.Visible = True
	.Height = 120
	.Width = 400
    .top = 598
    .left = 10
	.StatusBar = False: .MenuBar = False: .ToolBar = False
  
	call CreateTempFile
	oTempFile.WriteLine("noch leer ")
	oTempFile.Close
	o_IEStatus.Navigate sTempFileName '"move del2bak" '
	
	'Do
    'Loop While .Busy

    Set WSHShell = WScript.CreateObject("WScript.Shell")
    WshShell.AppActivate("Microsoft Internet Explorer")
    Set WSHShell = Nothing
  End With

End function  	

Function WriteStatusText(o_IEStatus, i_StatusText)
  With o_IEStatus
   	call CreateTempFile
	oTempFile.WriteLine(i_StatusText)
	oTempFile.Close
	o_IEStatus.Navigate sTempFileName '"move del2bak" '
  End with
End Function

Function CloseStatusWindow(o_IEStatus)
  o_IEStatus.Stop: o_IEStatus.Quit
  Set o_IEStatus = Nothing
  call DeleteTempFile
End Function


'*********************************************************
Function BrowseForFolder(strPrompt, intBrowseInfo, vRootFolder)
'*********************************************************
'BrowseForFolder dialog. Follows MSDN example closely. Also handles selection of special
'folders (ex Desktop), which do not return a folder3 object as 'normal' folders do.
'Code below does not support all options, only folders.
'To use, copy and paste function into script,
'call as BrowseForFolder(strPrompt, intBrowseInfo, vRootFolder) where root folder is either an
'integer (constants below) or a string with a folder path.
'To use the constants below, they must be in the script header.

	'Flags specifying the options for the dialog box. This member can include zero or a combination of the following values.
	 Const BIF_BROWSEFORCOMPUTER 	= 4096  'Only return computers. If the user selects anything other than a computer, the OK button is grayed.
	 Const BIF_BROWSEFORPRINTER 	= 8192  'Only allow the selection of printers. If the user selects anything other than a printer, the OK button is grayed. In Microsoft Windows XP, the best practice is to use an XP-style dialog, setting the root of the dialog to the Printers and Faxes folder (CSIDL_PRINTERS).
	 Const BIF_BROWSEINCLUDEFILES 	= 16384 'Version 4.71. The browse dialog box will display files as well as folders.
	'Const BIF_BROWSEINCLUDEURLS 	=       'Version 5.0. The browse dialog box can display URLs. The BIF_USENEWUI and BIF_BROWSEINCLUDEFILES flags must also be set. If these three flags are not set, the browser dialog box will reject URLs. Even when these flags are set, the browse dialog box will only display URLs if the folder that contains the selected item supports them. When the folder's IShellFolder::GetAttributesOf method is called to request the selected item's attributes, the folder must set the SFGAO_FOLDER attribute flag. Otherwise, the browse dialog box will not display the URL.
	 Const BIF_DONTGOBELOWDOMAIN 	= 2     'Do not include network folders below the domain level in the dialog box's tree view control.
	 Const BIF_EDITBOX 		= 16    'Version 4.71. Include an edit control in the browse dialog box that allows the user to type the name of an item.
	'Const BIF_NEWDIALOGSTYLE 	=       'Version 5.0. Use the new user interface. Setting this flag provides the user with a larger dialog box that can be resized. The dialog box has several new capabilities including: drag-and-drop capability within the dialog box, reordering, shortcut menus, new folders, delete, and other shortcut menu commands. To use this flag, you must call OleInitialize or CoInitialize before calling SHBrowseForFolder.
	 Const BIF_NONEWFOLDERBUTTON 	= 512   'Version 6.0. Do not include the New Folder button in the browse dialog box.
	'Const BIF_NOTRANSLATETARGETS 	=       'Version 6.0. When the selected item is a shortcut, return the PIDL of the shortcut itself rather than its target.
	 Const BIF_RETURNFSANCESTORS 	= 8     'Only return file system ancestors. An ancestor is a subfolder that is beneath the root folder in the namespace hierarchy. If the user selects an ancestor of the root folder that is not part of the file system, the OK button is grayed. Const BIF_RETURNONLYFSDIRS = 1 'Only return file system directories. If the user selects folders that are not part of the file system, the OK button is grayed.
	'Const BIF_SHAREABLE 		=       'Version 5.0. The browse dialog box can display shareable resources on remote systems. It is intended for applications that want to expose remote shares on a local system. The BIF_NEWDIALOGSTYLE flag must also be set.
	 Const BIF_STATUSTEXT 		= 4     'Include a status area in the dialog box. The callback function can set the status text by sending messages to the dialog box. This flag is not supported when BIF_NEWDIALOGSTYLE is specified.
	'Const BIF_UAHINT 		=       'Version 6.0. When combined with BIF_NEWDIALOGSTYLE, adds a usage hint to the dialog box in place of the edit box. BIF_EDITBOX overrides this flag.
	'Const BIF_USENEWUI 		=       'Version 5.0. Use the new user interface, including an edit box. This flag is equivalent to BIF_EDITBOX | BIF_NEWDIALOGSTYLE. To use BIF_USENEWUI, you must call OleInitialize or CoInitialize before calling SHBrowseForFolder.
	 Const BIF_VALIDATE 		= 32    'Version 4.71. If the user types an invalid name into the edit box, the browse dialog box will call the application's BrowseCallbackProc with the BFFM_VALIDATEFAILED message. This flag is ignored if BIF_EDITBOX is not specified.
	
	Const ssfALTSTARTUP 		= 29    'File system directory that corresponds to the user's nonlocalized Startup program group. (value = 29)
	Const ssfAPPDATA 		= 26    'Version 4.71. File system directory that serves as a common repository for application-specific data. A typical path is C:\Documents and Settings\username\Application Data. (value = 26)
	Const ssfBITBUCKET 		= 10    'Virtual folder containing the objects in the user's Recycle Bin. (value = 15)
	Const ssfCOMMONALTSTARTUP 	= 30    'File system directory that corresponds to the nonlocalized Startup program group for all users. Valid only for Microsoft Windows NT systems. (value = 30)
	Const ssfCOMMONAPPDATA 		= 35    'Version 5.0. Application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data. (value = 35)
	Const ssfCOMMONDESKTOPDIR 	= 25    'File system directory that contains files and folders that appear on the desktop for all users. A typical path is C:\Documents and Settings\All Users\Desktop. Valid only for Windows NT systems. (value = 25)
	Const ssfCOMMONFAVORITES 	= 31    'File system directory that serves as a common repository for all users' favorite items. Valid only for Windows NT systems. (value = 31)
	Const ssfCOMMONPROGRAMS 	= 23    'File system directory that contains the directories for the common program groups that appear on the Start menu for all users. A typical path is C:\Documents and Settings\All Users\Start Menu\Programs. Valid only for Windows NT systems. (value = 23)
	Const ssfCOMMONSTARTMENU 	= 22    'File system directory that contains the programs and folders that appear on the Start menu for all users. A typical path is C:\Documents and Settings\All Users\Start Menu. Valid only for Windows NT systems. (value = 22)
	Const ssfCOMMONSTARTUP 		= 24    'File system directory that contains the programs that appear in the Startup folder for all users. A typical path is C:\Documents and Settings\All Users\Start Menu\Programs\Startup. Valid only for Windows NT systems. (value = 24)
	Const ssfCONTROLS 		= 3     'Virtual folder containing icons for the Control Panel applications. (value = 3)
	Const ssfCOOKIES 		= 33    'File system directory that serves as a common repository for Internet cookies. A typical path is C:\Documents and Settings\username\Cookies. (value = 33)
	Const ssfDESKTOP 		= 0     'Microsoft Windows Desktop—virtual folder that is the root of the namespace. (value = 0)
	Const ssfDESKTOPDIRECTORY 	= 16    'File system directory used to physically store the file objects that are displayed on the desktop. It is not to be confused with the desktop folder itself, which is a virtual folder. A typical path is C:\Documents and Settings\username\Desktop. (value = 16)
	Const ssfDRIVES 		= 17    'My Computer—virtual folder containing everything on the local computer: storage devices, printers, and Control Panel. This folder may also contain mapped network drives. (value = 17)
	Const ssfFAVORITES 		= 6     'File system directory that serves as a common repository for the user's favorite items. A typical path is C:\Documents and Settings\username\Favorites. (value = 6)
	Const ssfFONTS 			= 20    'Virtual folder containing installed fonts. A typical path is C:\WINNT\Fonts. (value = 20)
	Const ssfHISTORY	 	= 34    'File system directory that serves as a common repository for Internet history items. (value = 34)
	Const ssfINTERNETCACHE 		= 32    'File system directory that serves as a common repository for temporary Internet files. A typical path is C:\Documents and Settings\username\Temporary Internet Files. (value = 32)
	Const ssfLOCALAPPDATA 		= 28    'Version 5.0. File system directory that serves as a data repository for local (non-roaming) applications. A typical path is C:\Documents and Settings\username\Local Settings\Application Data. (value = 28)
	Const ssfMYPICTURES 		= 39    'My Pictures folder. A typical path is C:\Documents and Settings\username\My Documents\My Pictures. (value = 39)
	Const ssfNETHOOD 		= 19    'A file system folder containing the link objects that may exist in the My Network Places virtual folder. It is not the same as ssfNETWORK, which represents the network namespace root. A typical path is C:\Documents and Settings\username\NetHood. (value = 19)
	Const ssfNETWORK 		= 21    'Network Neighborhood—virtual folder representing the root of the network namespace hierarchy. (value = 18)
	Const ssfPERSONAL 		= 5     'File system directory that serves as a common repository for a user's documents. A typical path is C:\Documents and Settings\username\My Documents. (value = 5)
	Const ssfPRINTERS 		= 4     'Virtual folder containing installed printers. (value = 4)
	Const ssfPRINTHOOD 		= 18    'File system directory that contains the link objects that may exist in the Printers virtual folder. A typical path is C:\Documents and Settings\username\PrintHood. (value = 27)
	Const ssfPROFILE 		= 40    'Version 5.0. User's profile folder. (value = 40)
	Const ssfPROGRAMFILES 		= 38    'Version 5.0. Program Files folder. A typical path is C:\Program Files. (value = 38)
	Const ssfPROGRAMS 		= 2     'File system directory that contains the user's program groups (which are also file system directories). A typical path is C:\Documents and Settings\username\Start Menu\Programs. (value = 2)
	Const ssfRECENT 		= 8     'File system directory that contains the user's most recently used documents. A typical path is C:\Documents and Settings\username\Recent. (value = 8)
	Const ssfSENDTO 		= 9     'File system directory that contains Send To menu items. A typical path is C:\Documents and Settings\username\SendTo. (value = 9)
	Const ssfSTARTMENU 		= 11    'File system directory containing Start menu items. A typical path is C:\Documents and Settings\username\Start Menu. (value = 11)
	Const ssfSTARTUP 		= 7     'File system directory that corresponds to the user's Startup program group. The system starts these programs whenever any user logs onto Windows NT or starts Windows 95. A typical path is C:\Documents and Settings\username\Start Menu\Programs\Startup. (value = 7)
	Const ssfSYSTEM 		= 37    'Version 5.0. System folder. A typical path is C:\WINNT\SYSTEM32. (value = 37)
	Const ssfTEMPLATES 		= 21    'File system directory that serves as a common repository for document templates. (value = 21)
	Const ssfWINDOWS 		= 36    'Version 5.0. Windows directory or SYSROOT. This corresponds to the %windir% or %SYSTEMROOT% environment variables. A typical path is C:\WINNT. (value = 36)
	
	Dim oShell
	Dim oFolder
	Dim oFolderItem
	Dim strPath
	Dim oWSHShell
	Dim oFSO
	Dim bSuccess

	Set oShell = CreateObject("Shell.Application")
	Set oWSHShell = CreateObject("WScript.Shell")
	Set oFSO = CreateObject("Scripting.FileSystemObject")
	
	Do
		'syntax: oFolder = Shell.BrowseForFolder(Hwnd, sTitle, iOptions [,vRootFolder])
		Set oFolder = oShell.BrowseForFolder(&H0, strPrompt, intBrowseInfo, vRootFolder)
		
		'This seems to get a 'normal' folder object from the folder3 object returned by BrowseForFolder
		Set oFolderItem = oFolder.Items.Item
		
		'If a special folder (ex. desktop) is selected, object is nothing.
			If (oFolderItem Is Nothing) Then
			'This is necessary - seems to convert invalid object reference to a string?
			strPath = oFolder
			Set oFolderItem = oFSO.GetFolder(oWSHShell.SpecialFolders(strPath))
		End If
		
		If Not oFSO.FolderExists(oFolderItem.Path) Then
			MsgBox "Invalid selection; Please try again"
		Else
			bSuccess = True
		End If
	Loop While Not bSuccess
	
	BrowseForFolder = oFolderItem.Path

End Function ' BrowseForFolder(strPrompt, intBrowseInfo, vRootFolder)
 
Zuletzt bearbeitet:
Noch keine Reaktion hier - seltsam :confused:
Dann halt ich! :)

Super jar(y) - Danke schon einmal, aber ich werde es erst morgen oder so
ausprobieren!

gruß dudel
 
jar schrieb:
neue Version eingespielt, bugfixes, ich arbeite weiter dran
(y) Wird man denn auch Originale aus einem Ordner mit den kopien aus einem andern Ordner (mit Unterordner) vergleichen können?
Man kann doch auch anstatt nach den RAWs zu suchen doch nach JPGs suchen, oder?
 
Michael Kölsch schrieb:
(y) Wird man denn auch Originale aus einem Ordner mit den kopien aus einem andern Ordner (mit Unterordner) vergleichen können?
Man kann doch auch anstatt nach den RAWs zu suchen doch nach JPGs suchen, oder?

' NEW BUILD by J A R -> RAW_DEL_1.vbs
in:
https://www.dslr-forum.de/showpost.php?p=1148109&postcount=16



neue Version, mit Zeitschleife die bis zu 10 Sekunden auf die Ordnererstellung wartet, create folder ist buggy oder nicht HT/dualtauglich, der ordner wird erstellt gibt aber trotzdem Fehler, nun hoff beseitigt

persönliche Tuningmöglichkeiten

20. START_drv_dir = "R:\test" ' kann angepasst werden auf das default Laufwerk und default BilderDIR
21. rawTyp = "tif" ' RAW Type ;-) kann auch NEF , CRW, CR2 sein
22. bak_dir = "bak" ' im JPG Ordner wird ein bak erstellt, dorthin werden die überflüssigen RAW verschoben, kann jeder selber löschen
23. rawPfad = "\RAW" ' da wollte jemand seinen RAW Ordner anders benennen :)))
24. warte = 250 ' hier kann man tunen 250 = 1/4 Sekunde

zur Frage, da ist dies besser geeignet:
http://www.winload.de/download/37307/Utilities/Dateimanagement/BinComp-1.5.2.html
 
WERBUNG
Zurück
Oben Unten