AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CopyFile() plattformunabhängig

Offene Frage von "blackdrake"
Ein Thema von blackdrake · begonnen am 25. Apr 2009 · letzter Beitrag vom 26. Apr 2009
 
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#1

CopyFile() plattformunabhängig

  Alt 25. Apr 2009, 01:43
Hallo.

Ich möchte meine Anwendung plattformunabhängig gestalten. Ich konnte bis jetzt fast alle Referenzen zu der Unit Windows.pas durch Äquivalente der RTL ersetzen. Doch bei CopyFile() hakt es. Ein Blick in die Hilfe brachte das Ergebnis, dass es in der RTL (zumindestens bei D7) keine Funktion gibt, sondern nur die WinAPI.

Da zum Einen bestimmt viele Leute dieses Problem haben und zum Anderen CopyFile() eine sehr wichtige Funktion ist, dachte ich mir, es müsste sicherlich einen einfachen MyCopyFile() Quellcode geben. Doch ich habe nichts gefunden!

Kennt jemand einen guten Code bzw. kann mir bei der Entwicklung einer äquivalenten Funktion helfen? Wie ist es in FreePascal, Kylix oder Lazarus, die ja allesamt auch für Linux compilieren können, gelöst worden? Ist dort eine derartige Funktion vorhanden oder hoffen sie, dass WinE o.ä. eine Art borland.Windows.so bereitstellt?

Teil 1 wäre das binäre Kopieren der Datei. Ich denke, das lässt sich mittels AssignFile() lösen - bisher habe ich das aber nur mit Textdateien gekannt. Wie ich sicher Binär kopiere, weiß ich noch nicht genau.

Der schwierigere Teil 2 wäre dann das Kopieren der Attribute (außer der Sicherheitsattribute) sowie der Zeitstempel. Schließlich soll die Kopie auch wirklich eine Kopie sein. Nur wie erledigt man das zuverlässig und auch noch plattformunabhängig?

Das Wichtigste ist, dass die Funktion möglichst genau so arbeitet wie das WinAPI-Pendant (ansonsten könnten Aufrufe mit z.B. falschen Erfolgswert schlimmstenfalls zum Datenverlust führen, wenn die Quelldatei dann z.B. aufgrund des laufwerksübergreifenden Verschiebens gelöscht wird). Dann könnte man auch eine Wrapper-Funktion mit Compilerflags realisieren.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
 


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 01:51 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 by Thomas Breitkreuz