Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   FileExists in FireMonkey? (https://www.delphipraxis.net/181137-fileexists-firemonkey.html)

geosucher 18. Jul 2014 10:50

FileExists in FireMonkey?
 
Hallo,

wieder ein Problem bei der Programmierung für Android. Ich nutze Delphi XE5 Prof..
Ich möchte mit meiner App eine Datei anlegen. Dazu nutze ich:

Androidapi.IOUtils.GetExternalDownloadsDir,

dann hänge ich den Dateinamen an. Ich kontrolliere, ob die Datei existiert mit FileExists (wenn ja hänge ich Ziffern an).
Wiederhole ich die Aktion während eines Progrmmlaufs - alles prima. Beende ich die App und starte neu, erkennt sie die erste Datei nicht und überschreibt.
Sollte ich ein anderes Verzeichnis nehmen oder leigt das an der Debug-Konfiguration?

Im Voraus vielen Dank!

Geosucher

Union 18. Jul 2014 11:10

AW: FileExists in FireMonkey?
 
Das liegt daran, dass in XE5 bei jedem Build die app neu installiert wird. Dadurch landet die auch wieder woanders und erhält eine andere GUID in der Sandbox.

BTW solltest Du für IOUtils verwenden und nicht mehr die alten Dateirotuinen (FileExists >> TFile.Exists). Intern wird das im konkreten Fall zwar weiterhin so aufgerufen, aber viele andere Routinen verhalten sich dann automatisch abhängig von der Plattform korrekt.

geosucher 18. Jul 2014 11:43

AW: FileExists in FireMonkey?
 
Danke!

Meinst Du statt File Exists --> System.IoUtils.TFile.Exists ?

Gruß

Geosucher

Union 18. Jul 2014 12:13

AW: FileExists in FireMonkey?
 
Ja, genau das. Dort sind auch noch andere Records vorhanden, die einem sehr viel Standard-Arbeit abnehmen (TFile, TPath, TDirectory).

Olli73 18. Jul 2014 12:51

AW: FileExists in FireMonkey?
 
Keine Ahnung, ob es in diesem Fall daran liegt, aber unter Android werden neue Dateien über MTP und teilweise auch in (anderen) Apps erst erkannt, wenn entweder das Gerät neu gestartet wird oder "Intent.ACTION_MEDIA_SCANNER_SCAN_FILE" manuell aufgerufen wird.

Siehe auch hier:

https://code.google.com/p/android/is...etail?id=38282

Testen kannst du es ganz einfach, indem du mal das Gerät neu startest und danach prüfst, ob die Datei nun gefunden wird.

Edit: Sehe gerade, du hast "GetExternalDownloadsDir" und nicht "GetSharedDownloadsDir" verwendet; dann wird natürlich sowieso bei jedem Build die Datei gelöscht (wie Union bereits geschrieben hat)

geosucher 19. Jul 2014 19:26

AW: FileExists in FireMonkey?
 
Hallo Olli73 und Union,

danke für Eure Tipps. Ich schreibe jetzt in GetSharedDownloadsDir und wenn ich ein Release erzeugt, klappt alles wie gewünscht....

Danke!

Geosucher

himitsu 19. Jul 2014 21:16

AW: FileExists in FireMonkey?
 
Ich dachte ich hätte mal gehört, daß Emba das wieder repariert hätte und nicht mehr über deinstallieren/installieren geht, so wie anfangs schonmal war?

RWarnecke 19. Jul 2014 21:26

AW: FileExists in FireMonkey?
 
Zitat:

Zitat von himitsu (Beitrag 1266054)
Ich dachte ich hätte man gehört, daß Emba das wieder repariert hätte und nicht mehr über deinstallieren/installieren geht, so wie anfangs mal?

Aber erst ab XE6 glaube ich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz