Refresh / Quelle neu einlesen funktioniert nicht

German support forum

Moderators: white, Hacker, Stefan2

User avatar
SdoubleU
Junior Member
Junior Member
Posts: 51
Joined: 2008-02-13, 19:55 UTC

Refresh / Quelle neu einlesen funktioniert nicht

Post by *SdoubleU »

Hallo,

Mein System:
Win 7 Prof + SP1 64bit
TC 8.0 64bit

Mein Problem:
Wenn ich zum Beispiel eine größere Datei (innerhalb des TC) von A nach B kopiere und während des Kopiervorgang im Zielverzeichnis STR+R drücke, dann aktuallisiert sich nicht die Dateigröße.
Die geschieht auch nicht, wenn ich aus dem Zielverzeichnis raus und wieder rein gehe, auch nicht über das Menü > Ansicht > Quelle neu einlesen, auch nicht, wenn ich in den Einstellungen > Neu-Einlesen > Refresh bei Erzeugen, Umbenennen, Löschen von Dateien ein Haken setze.

Ich habe es auch schon mit einer TC 32bit Version probiert. Hier genau das gleiche.

Vermutlich liegt es an einer "Falschoptimierung" des Win7 Systems.
Hat jemand eine Idee, Vorschläge oder sonstiges, was ich probieren könnte?

Danke.
User avatar
SdoubleU
Junior Member
Junior Member
Posts: 51
Joined: 2008-02-13, 19:55 UTC

Post by *SdoubleU »

Ich habe gerade gesehen, dass mein Problem hier http://ghisler.ch/board/viewtopic.php?t=25187 schon mal diskuttiert wurde aber leider noch keine Lösung gefunden wurde.

Gibt es vielleicht jetzt was aktuelles oder andere Ideen dazu?
Liegt das nun an TC oder an Win7 64bit?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48093
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Sie können Alt+Enter drücken auf der Datei, dann aktualisiert sichdie Grösse.
Author of Total Commander
https://www.ghisler.com
User avatar
SdoubleU
Junior Member
Junior Member
Posts: 51
Joined: 2008-02-13, 19:55 UTC

Post by *SdoubleU »

Diese Tastenkombination ruft bei mir das Fenster mit den Dateieigenschaften auf. Es aktualisiert aber nicht die Dateigröße.
Ich kenne diese Tastenkombination eigentlich für Ordner. Damit wird, zu mindest bei mir die Ordnergröße angezeigt.

Liegt das an einem Buck im TC wenn er auf einem 64bit System läuft oder an Windows selber? Weil das aktualisieren der Dateigröße nach drücken von F5 im Win-Explorer funktioniert ja. Danach ist dann auch die Dateigröße im TC aktualisiert.
Wenn es ein Win Buck ist, kann man TC so programmieren, dass dieser Win Buck umgangen wird?
User avatar
Chardonnens
Member
Member
Posts: 115
Joined: 2006-07-20, 16:30 UTC
Location: Schweiz

Post by *Chardonnens »

Diese Tastenkombination ruft bei mir das Fenster mit den Dateieigenschaften auf. Es aktualisiert aber nicht die Dateigröße.
Es sind: Alt+Shift+Enter ! Um die Grösse zu aktualisieren.
Gruss Chardonnens
User avatar
SdoubleU
Junior Member
Junior Member
Posts: 51
Joined: 2008-02-13, 19:55 UTC

Post by *SdoubleU »

Das funktioniert leider auch nicht.
vielleicht wir es ja in einer der nächsten Versionen von TC behoben.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48093
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Nein nein, es ist tatsächlich Alt+Enter gemeint! Windows scheint da irgend eine Funktion aufzurufen, welche den NTFS-Cache auf den aktuellen Stand bringt. Gerade bei längeren Downlloads kann man Alt+Enter benutzen, um die tatsächliche Grösse der bereits heruntergeladenen Teildatei anzeigen zu lassen. Wenn man zusätzlich die Option "Automatisches Neu-Einlesen" eingestellt hat, dann zeigt TC diese Grösse danach auch in der Dateiliste an.
Author of Total Commander
https://www.ghisler.com
User avatar
SdoubleU
Junior Member
Junior Member
Posts: 51
Joined: 2008-02-13, 19:55 UTC

Post by *SdoubleU »

Danke für die Erklärung.

Wie schon oben beschrieben, funktionniert die Einstellung "Automatisches Neu-Einlesen" leider auch nicht.

Bin aber gerne für weiter Versuche und Vorschläge offen.

@ghisler(Author)
liegt das nun an Win7x64 selbst oder an TCx86 unter Win7x86?
Denn scheinbar bin ich nicht alleine mit diesem Problem, wie man hier
http://ghisler.ch/board/viewtopic.php?t=25187
lesen kann.
User avatar
SdoubleU
Junior Member
Junior Member
Posts: 51
Joined: 2008-02-13, 19:55 UTC

Post by *SdoubleU »

So ich habe so eben nochmal Win7x64 neu installiert um sicher zu stellen, dass es nicht an einer Fehlkonfiguration meinerseits liegt.

Ich habe so wohl TCx64 als auch TCx32 ausprobiert. Genau der gleiche Fehler. Die Dateigröße aktuallisiert sich erst, nachdem sie fertig (kopiert, entpackt, downgelodet) ist. Auch die schon genannten Einstellungen (refresh) und Tastenkombinationen haben nicht funktioniert.
Schade ich hatte gehofft, dass es auch einem frisch installiertem System (Win7x64) vielleicht doch funktioniert.

Dann hoffe ich einfach mal darauf, dass es in einer der nächsten Versionen von TC irgendwie behoben werden kann.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48093
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Sorry, TC kann nur anzeigen was ihm Windows meldet. NTFS verwendet eine Art Cache für Verzeichnisse, der meist nur beim Schliessen von Dateien angepasst wird.
Author of Total Commander
https://www.ghisler.com
User avatar
SdoubleU
Junior Member
Junior Member
Posts: 51
Joined: 2008-02-13, 19:55 UTC

Post by *SdoubleU »

ghisler(Author) wrote: ... NTFS verwendet eine Art Cache für Verzeichnisse, der meist nur beim Schliessen von Dateien angepasst wird.
Aber warum aktualisiert sich dann die Dateigröße im Explorer wenn ich dort F5 drücke, bevor die Datei fertig ist?
Das müsste ja dann auch nicht funktionieren, wenn dem so ist.
Oder verstehe ich da was falsch?

Kann man nicht die Aktion/Event der durch F5 im Explorer ausgeführt wird durch TC mittels STRG+R oder "refresh" Einstellungen abrufen?
Das ist nur eine naive Vorstellung ... ich habe keine Ahnung, was das für die Umsetzung in der Programmierung bedeutet.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48093
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Weiss ich leider nicht, ich habe den Quellcode des Explorers nicht. Bei Alt+Enter vermute ich, dass der Explorer die Datei kurz öffnet und dann wieder schliesst, was (zumindest bei mir) den NTFS-Cache aktualisiert.
Author of Total Commander
https://www.ghisler.com
vunalodge
Junior Member
Junior Member
Posts: 15
Joined: 2010-01-04, 16:17 UTC

Post by *vunalodge »

Also zumindest ab XP bei NTFS sollte FindFirstChangeNotification zuverlässig funktionieren. http://msdn.microsoft.com/en-us/library/windows/desktop/aa364417%28v=vs.85%29.aspx
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48093
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

FindFirstChangeNotification meldet nur, wenn sich etwas ändert, aber nicht, was sich geändert hat:
This function does not indicate the change that satisfied the wait condition. To retrieve information about the specific change as part of the notification, use the ReadDirectoryChangesW function.
ReadDirectoryChangesW wiederum liefert eine FILE_NOTIFY_INFORMATION-Struktur zurück, die nur den Namen der geänderten Datei meldet.

Total Commander benutzt bereits ReadDirectoryChangesW. Für geänderte Dateien ruft er dann FindFirstFileW auf, aber da wird eben der Cache-Wert für die Grösse zurückgeliefert, und nicht der aktuelle Wert.
Author of Total Commander
https://www.ghisler.com
vunalodge
Junior Member
Junior Member
Posts: 15
Joined: 2010-01-04, 16:17 UTC

Post by *vunalodge »

Sie haben recht. Das wusste ich bis anhin nicht.
Hier http://blogs.msdn.com/b/oldnewthing/archive/2011/12/26/10251026.aspx habe ich einen Workaround gefunden.
Allerdings hatte ich bisher keine Zeit das zu überprüfen.
Offenbar kann das Verhalten mit zweimaligem öffnen des Files via CreateFileW() umgangen werden.
Post Reply