Na uren zoeken heb ik nog geen idee wat dat zou moeten zijn.Dan zal je FileExists moeten gebruiken (of wat daar dan ook de android variant van is)
Na uren zoeken heb ik nog geen idee wat dat zou moeten zijn.Dan zal je FileExists moeten gebruiken (of wat daar dan ook de android variant van is)
System.IoUtils.TFile.Exists al geprobeerd (derde resultaat wanneer ik "FireMonkey FileExists" in Google intik)?
TMemoryLeak.Create(Nil);
Dit zal natuurlijk niets doen voor het originele probleem.
Het is alleen maar om te kijken of de file bestaat (en meegekomen is met de distributie).
(Wel altijd verstandig om te doen voordat je die gaat gebruiken natuurlijk)
Je moet ook goed in de link (uit de edit regel) kijken die doorgegeven was !!
Je moet de file dus niet in ./ distribueren maar in assets/internal.
Zie https://stackoverflow.com/a/27611620/1037511 voor een voorbeeld.
(en http://docwiki.embarcadero.com/RADSt...eploying_Files)
Last edited by rvk; 27-Aug-19 at 18:36.
Ik wil dit graag testen, maar om de een of andere redenen is de platform keuze niet meer aanwezig, en probeer van alles om dit weer zichtbaar te krijgen.
Dus als ik een nieuw project begin, dan kies ik voor een blank form, en daarna had ik de mogelijkheid om te kiezen voor Android, deze staat er niet meer.
Wie weet hoe ik dit weer zichtbaar kan maken, of is er een mogelijkheid om de scherm indeling weer te herstellen ?
Zoiets was het:
Kan je even laten zien hoe het er nu uit ziet?
Platform Device Selection moet je aan zetten
Perfect ! (Bedankt !!!)
Als ik het bestand mee stuur met "assets/internal", dan kan ik deze niet vinden op mijn Telefoon, ik heb dus geen idee waar deze neer gezet wordt.
Nu wil ik dus alle data bestanden in 1 map hebben (Map: MMSoft)
Op deze manier lees ik het path waar de Music staat, en daar haal de tekst 'Music' er vanaf.
Op deze manier krijg ik het Path van de Root (dat is het path dat ik nodig heb).
Dit is niet netjes maar ik zou niet weten hoe ik dit anders zo moeten doen (Als hier een goede oplossing voor is dan hoor ik die heel graag).
path:= System.IOUtils.TPath.GetSharedMusicPath;
path := Copy( path , 0, ( Length(path ) - 5) ); //De Laatste 5 karr. verwijderen
path := path + 'MMSoft';
Memo1.Lines.LoadFromFile( path + '/Test.txt' );
De Tekst "Test.txt" wordt gevonden, want als dit bestand niet aanwezig is krijg ik (in de App) de melding: No such file or directory
Helaas wordt de inhoud niet weergegeven maar krijg ik de foutmelding: Permission denied.
Ik ben nu bezig met de Uses Permissions, maar wat ik ook aanvink, het probleem blijft...
Wie heeft hier een oplossing voor ?
Maar waarom zet je je bestanden niet in het mapje 'documenten'? Die heeft toch een vaste plek?
System.IOUtils.TPath.GetDocumentsPath
sorry...
System.IOUtils.TPath.GetSharedDocumentsPath
Last edited by AppY; 28-Aug-19 at 12:41.
Niemand houdt meer van hard werken dan diegene die ervoor betaalt.
Dat is inderdaad mogelijk het beste !!Maar waarom zet je je bestanden niet in het mapje 'documenten'? Die heeft toch een vaste plek?
Maar dan heb ik helaas (nog) geen toegang tot mijn bestanden, de melding "Permission denied" verschijnt en wat ik ook aan vink bij "Project > Options > User Permissions" ik krijg geen toegang tot mijn eigen bestanden
Code:unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} uses System.IOUtils; procedure TForm1.Button1Click(Sender: TObject); var path: String; begin path := System.IOUtils.TPath.GetSharedDocumentsPath; Showmessage( path + '/Test.txt' ); Memo1.Lines.LoadFromFile( path + '/Test.txt' ); end; end.
Message Tekst:
Geen toegang bij openen van het Bestand:
Als ik het bestand verwijderd heb, dan krijg ik dit te zien als ik op de Button druk:
Last edited by MMSoft; 29-Aug-19 at 10:41.
En als je nu gewoon de TPath.GetDocumentsPath gebruikt, zoals in de documentatie is aangegeven?
http://docwiki.embarcadero.com/RADSt...eploying_Files
Dus bestand in assets\internal en
En let op... bestand zette in assets\internal. Niet in assets/internal.Code:var path: String; begin path := TPath.Combine(TPath.GetDocumentsPath, 'Test.txt'); Showmessage( path ); Memo1.Lines.LoadFromFile( path ); end;
Heb je bij user permissions ook "read extrernal storage" & "write external storage" aangevinkt?
Niemand houdt meer van hard werken dan diegene die ervoor betaalt.
Bestand in: assets\internalEn als je nu gewoon de TPath.GetDocumentsPath gebruikt, zoals in de documentatie is aangegeven?
En de code gebruikt, geeft: Cannot open file "/data/user/0/com.embarcaderero.Test4/files/Test.txt". No such file or directory.
Ja die stonden beide al aan.Heb je bij user permissions ook "read extrernal storage" & "write external storage" aangevinkt?
There are currently 2 users browsing this thread. (0 members and 2 guests)
Bookmarks