RenameFile funtioniert nicht
-
- Beiträge: 50
- Registriert: 29.03.2013 12:25
- Wohnort: Eisenach
RenameFile funtioniert nicht
Hallo !
Habe ein Umnenntool für Bilddateien programmiert, das einige Merkmale zum Inhalt des Bildes und zum Aufnahmedatum im Dateinamen aufnimmt. Zum Schluss des Programms soll folgende Zeile das Umnennen ausführen.
erg=RenameFile(AlterDateiname$,NeuerDateiname$)
Das funktioniert aber nicht immer, hauptsächlich nicht, wenn die Bilder auf einer externen Festplatte sind. Dann ist
bei Kontrolle nichts passiert, ausser das man die Zeit für die Bearbeitung einer größeren Anzahl Bilder vertan hat. Beim Debuggen ist erg manchmal 0 - dh. RenameFile funktionierte nicht. Was Kann man dann außer RenameFile tun, daß die Dateien auf jeden Fall umbenannt werden.
mfG
Heinz
Habe ein Umnenntool für Bilddateien programmiert, das einige Merkmale zum Inhalt des Bildes und zum Aufnahmedatum im Dateinamen aufnimmt. Zum Schluss des Programms soll folgende Zeile das Umnennen ausführen.
erg=RenameFile(AlterDateiname$,NeuerDateiname$)
Das funktioniert aber nicht immer, hauptsächlich nicht, wenn die Bilder auf einer externen Festplatte sind. Dann ist
bei Kontrolle nichts passiert, ausser das man die Zeit für die Bearbeitung einer größeren Anzahl Bilder vertan hat. Beim Debuggen ist erg manchmal 0 - dh. RenameFile funktionierte nicht. Was Kann man dann außer RenameFile tun, daß die Dateien auf jeden Fall umbenannt werden.
mfG
Heinz
- Pelagio
- Beiträge: 424
- Registriert: 11.11.2004 17:52
- Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem - Wohnort: Bremen
Re: RenameFile funtioniert nicht
Hallo Heinz Mendax,
das umbenennen der Dateien müsste funktionieren aber es sind natürlich dazu Voraussetzungen notwendig, die man aus deinem Text nicht herauslesen kann.
Ist der Pfad in den Dateinamen mit angegeben?
Hast Du dei entsprechenden Rechte in den Verzeichnissen?
ist die eine oder andere Datei eventuell in gebrauch?
Ich hatte mit dem Befehl bis dato noch nie Probleme.
das umbenennen der Dateien müsste funktionieren aber es sind natürlich dazu Voraussetzungen notwendig, die man aus deinem Text nicht herauslesen kann.
Ist der Pfad in den Dateinamen mit angegeben?
Hast Du dei entsprechenden Rechte in den Verzeichnissen?
ist die eine oder andere Datei eventuell in gebrauch?
Ich hatte mit dem Befehl bis dato noch nie Probleme.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS].
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS].
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: RenameFile funtioniert nicht
Ergänzend zu Pelagio:
Pfadlänge mit Dateiname noch unter maximaler Länge (z.B. 260 Zeichen)?
Ist das externe Laufwerk irgendwas besonderes? Also z.B. ein NAS-Laufwerk?
Überprüft, ob der Dateiname noch den Konventionen des Dateisystems entspricht?Heinz Mendax hat geschrieben:Habe ein Umnenntool für Bilddateien programmiert, das einige Merkmale zum Inhalt des Bildes und zum Aufnahmedatum im Dateinamen aufnimmt.
Pfadlänge mit Dateiname noch unter maximaler Länge (z.B. 260 Zeichen)?
Ist das externe Laufwerk irgendwas besonderes? Also z.B. ein NAS-Laufwerk?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
-
- Beiträge: 50
- Registriert: 29.03.2013 12:25
- Wohnort: Eisenach
Re: RenameFile funtioniert nicht
Hallo !
Ergänzung : die externen Festplatten sind USB-Laufwerke
- Dateien einunddesselben Verzeichnisses gehen oder gehen nicht umzunennen
- Dateien ist das Archivbit gesetzt
- es werden Dateinamen von der Form 2017-06-23_ACDF_DSCF3203.mpo erzeugt oder JPG usw.
- es wird aber kein Fehler gemeldet (Windows)
Die RenameFile - Routine gibt eine Zahl oder 0 zurück, falls ein Fehler passiert. Wenn dieser Fall praktisch
vorgesehen ist, muß es doch Mittel dagegen geben.
Ergänzung : die externen Festplatten sind USB-Laufwerke
- Dateien einunddesselben Verzeichnisses gehen oder gehen nicht umzunennen
- Dateien ist das Archivbit gesetzt
- es werden Dateinamen von der Form 2017-06-23_ACDF_DSCF3203.mpo erzeugt oder JPG usw.
- es wird aber kein Fehler gemeldet (Windows)
Die RenameFile - Routine gibt eine Zahl oder 0 zurück, falls ein Fehler passiert. Wenn dieser Fall praktisch
vorgesehen ist, muß es doch Mittel dagegen geben.
Re: RenameFile funtioniert nicht
Hallo Heinz,
zu Debug-Zwecken kannst Du Dir ja mal die Namen der Dateien ausgeben lassen, bei denen ein RenameFile() fehlschlägt. Vielleicht lässt sich da ein Muster erkennen.
Grüße ... Peter
zu Debug-Zwecken kannst Du Dir ja mal die Namen der Dateien ausgeben lassen, bei denen ein RenameFile() fehlschlägt. Vielleicht lässt sich da ein Muster erkennen.
Code: Alles auswählen
Result = RenameFile(OldFilename$, NewFilename$)
If Result = 0
Debug "RenameFile() fehlgeschlagen!"
Debug "OldFilename: '" + OldFilename$ + "'"
Debug "NewFilename: '" + NewFilename$ + "'"
Debug "-----"
EndIf
Hygge
Re: RenameFile funtioniert nicht
Ich würde das Ergebnis auch im Normalbetrieb immer auswerten, nicht nur beim Debuggen. Falls Fehler auftreten, kann das Programm die Einzelheiten in eine Log-Datei schreiben und am Schluss eine kurze Meldung ausgeben.Heinz Mendax hat geschrieben:Beim Debuggen ist erg manchmal 0 - dh. RenameFile funktionierte nicht.
Re: RenameFile funtioniert nicht
Eventuell ist die Datei noch geschützt - weil irgendein Programm noch zugreift (Virenscanner, Upload, wasweisichdenn).
Probier mal folgendes:
Hier werden dann 5 Versuche unternommen - und maximal eine halbe Sekunde gewartet.
Probier mal folgendes:
Code: Alles auswählen
for loop = 1 to 5
Result = RenameFile(OldFilename$, NewFilename$)
if result
break
else
delay(100)
endif
next
if result=0
debug "[ERROR]"+Oldfilname$+" => "+NewFilename$
endif
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
-
- Beiträge: 50
- Registriert: 29.03.2013 12:25
- Wohnort: Eisenach
Re: RenameFile funtioniert nicht
Hallo !
Habe die Fehlerabfrage mit Delay eingebaut. Das Umnennen klappt nicht bei bestimmten Dateien eines Verzeichnisses.
Vielleicht ist doch eine Datei geöffnet o.ä. , da die Bilder kurz vorher angezeigt werden mit:
Ein Click mit der Maus schließt das Fenster. Ist hier im Code etwas unvollständig, was die Datei nicht immer freigibt.
mfG
Heinz
NicTheQuick: Code-Tags hinzugefügt
Habe die Fehlerabfrage mit Delay eingebaut. Das Umnennen klappt nicht bei bestimmten Dateien eines Verzeichnisses.
Vielleicht ist doch eine Datei geöffnet o.ä. , da die Bilder kurz vorher angezeigt werden mit:
Code: Alles auswählen
Ergebnis = ResizeImage(1, w3, h3, #PB_Image_Smooth)
If image ;(2)
OpenWindow(1,0,0,w3,h3,a1$,#PB_Window_ScreenCentered) (a1$ ist der Pfad des Bildes)
ImageGadget(1,0,0,w3,h3,Ergebnis)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow :CloseWindow(1): Goto weiter
Case #WM_RBUTTONUP : CloseWindow(1): Goto weiter
EndSelect
ForEver
EndIf ;(2)
mfG
Heinz
NicTheQuick: Code-Tags hinzugefügt
Re: RenameFile funtioniert nicht
Bitte sag mir, das du nicht ernsthaft aus einer schleife mittels Goto rausspringst....Heinz Mendax hat geschrieben: Case #PB_Event_CloseWindow :CloseWindow(1): Goto weiter
Case #WM_RBUTTONUP : CloseWindow(1): Goto weiter
Grausam, einfach nur grausam.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
- TroaX
- Beiträge: 662
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: RenameFile funtioniert nicht
Sah für mich eher nach Pseudo-Code aus das Goto
Aber bau mal nach der Anzeige des Fensters und dem Bild ein Delay von vllt. 50 ms ein. Danach sollte das File eigentlich frei sein. Wenn das nicht der Fall ist, kann es sein, das du vergisst, nach dem Laden der Datei selbige wieder zu schließen?
Aber bau mal nach der Anzeige des Fensters und dem Bild ein Delay von vllt. 50 ms ein. Danach sollte das File eigentlich frei sein. Wenn das nicht der Fall ist, kann es sein, das du vergisst, nach dem Laden der Datei selbige wieder zu schließen?
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript