AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?
Thema durchsuchen
Ansicht
Themen-Optionen

[XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

Ein Thema von Memnarch · begonnen am 4. Sep 2014 · letzter Beitrag vom 13. Jan 2015
Antwort Antwort
Faxe

Registriert seit: 10. Jan 2013
29 Beiträge
 
Delphi XE3 Professional
 
#1

AW: [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

  Alt 4. Sep 2014, 16:27
Aber die Hilfe redet von Pfaden:

Use Copy to copy a directory and its contents from a given path to another path.

SourceDirName
The path of the source directory that will be copied.

DestDirName
The destination path to which the directory will be copied.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

  Alt 4. Sep 2014, 16:34
Aber die Hilfe redet von Pfaden:

Use Copy to copy a directory and its contents from a given path to another path.

SourceDirName
The path of the source directory that will be copied.

DestDirName
The destination path to which the directory will be copied.
Ja, auch bei Emba gibt es Menschen, die den Unterschied zwischen einem Verzeichnis und einem Pfad nicht kennen.
Noch schlimmer ist es allerdings, dass es auch Entwickler bei Emba gibt, die den nicht kennen und Verzeichnis schreiben und Pfad meinen, bzw. Pfad schreiben und Verzeichnis meinen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 4. Sep 2014 um 16:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.630 Beiträge
 
Delphi 12 Athens
 
#3

AW: [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

  Alt 4. Sep 2014, 16:34
Also bei XE2-XE7 wird unterschieden, ob das letzte Zeichen ein Path-Separator ist oder nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

  Alt 4. Sep 2014, 16:43
Also bei XE2-XE7 wird unterschieden, ob das letzte Zeichen ein Path-Separator ist oder nicht.
Ähm, du meinst sicher Delphi-Referenz durchsuchenTPath.DirectorySeparatorChar und nicht Delphi-Referenz durchsuchenTPath.PathSeparator
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.630 Beiträge
 
Delphi 12 Athens
 
#5

AW: [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

  Alt 4. Sep 2014, 19:10
Also bei XE2-XE7 wird unterschieden, ob das letzte Zeichen ein Path-Separator ist oder nicht.
Ähm, du meinst sicher Delphi-Referenz durchsuchenTPath.DirectorySeparatorChar und nicht Delphi-Referenz durchsuchenTPath.PathSeparator
Nein, ich habe ja auch gar nicht TPath.PathSeparator erwähnt.

Die Abfrage heißt

        if not TPath.IsPathSeparator(Ch) then

was zwar in der Nomenklatur obigen Schluss zulassen würde, aber ganz anders implementiert ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

  Alt 4. Sep 2014, 19:36
Also bei XE2-XE7 wird unterschieden, ob das letzte Zeichen ein Path-Separator ist oder nicht.
Ähm, du meinst sicher Delphi-Referenz durchsuchenTPath.DirectorySeparatorChar und nicht Delphi-Referenz durchsuchenTPath.PathSeparator
Nein, ich habe ja auch gar nicht TPath.PathSeparator erwähnt.

Die Abfrage heißt

        if not TPath.IsPathSeparator(Ch) then

was zwar in der Nomenklatur obigen Schluss zulassen würde, aber ganz anders implementiert ist.
Oh, da stimmt die Namensgebung auch nicht so richtig überein ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.630 Beiträge
 
Delphi 12 Athens
 
#7

AW: [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

  Alt 4. Sep 2014, 21:07
Oh, da stimmt die Namensgebung auch nicht so richtig überein ...
Nicht nur das - die Implementation ist auch buggy: Endet der Pfad mit einem Doppelpunkt, wird fälschlicherweise nämlich kein Backslash eingefügt. Aber wer kopiert auch schon ganze Laufwerke, nicht wahr?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#8

AW: [XE] Bug in TDirectory.Copy, gibts schon einen QC eintrag?

  Alt 4. Sep 2014, 22:07
Naja, alles was nicht mit einem Backslash endet scheint eher ein Dateiname zu sein(Soweit sehen es zumindest z.B. die Winapi funktionen).
Und auch ExtractRelativePath würde das letzte Element als Dateiname nehmen, wenn "\" fehlt.


Und zumindest hätte ich bei der Exception-Politik erwartet, dass es dann mit einer Exception in die binsen geht. Zumindest den Resultwert von TFile.Copy hätte man verwerten können. Es kann schließlich auch nicht sein, dass eine funktion ohne Probleme durchrennt und dann nicht funktioniert hat.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden

Geändert von Memnarch ( 4. Sep 2014 um 22:09 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz