Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
GetHomePath Problem
#1
Merhaba,
Uygulamam için username, password gibi birkaç şeyi telefon hafızasına kayıt etmem gerekiyor kullanıcı erişemesin istiyorum
en uygun path GetHomePath olarak gördüm ve bu noktada birkaç problem yaşamaktayım.

1.
  yol := TPath.GetHomePath() + TPath.DirectorySeparatorChar + 'Klasor';
  if not DirectoryExists(yol) then
  bol := CreateDir(yol);
GetHomePath() dizinine klasör açamıyorum
İzinlere baktım. Farklı klasor oluşturma yöntemlerine baktım hiçbiri oluşturmuyor.

2.
Aynı şekilde dosya da kayıt edemiyorum. FileStream, Tfile.WriteAllText vs denedim ama sonuç alamadım

3.
GetHomePath() dizini debug da 
bilgisayarda adresi : '/data/data/com.embercadero.okul/files/Proje'
Telefonda ise: Android/data/com.embercadero.Proje/ gözüküyor
Bunun sebebi nedir bir türlü anlayamadım?

Yardımcı olursanız sevinirim.
teşekkürler
Cevapla
#2
Merhaba,
Bir dizinin kontrolü ve herhangi bir dosyanın belirlediğiniz dizine kayıt edilmesini aşağıdaki şekilde yapabilirsiniz.

var
 yol,DosyaYolu: String;
 bol: Boolean;
begin
 yol := TPath.GetHomePath() + PathDelim + 'YeniBirDizin';
 if not DirectoryExists(yol) then
   bol := CreateDir(yol);
 if bol then
 begin
   DosyaYolu:=TPath.Combine(yol, 'Dosyadi.Uzantisi');
   SaveToFileMetodunuz(DosyaYolu);
 end;
end;
Cevapla
#3
Soruya cevap değil ama paylaşılan kodlarla ilgili ek bilgi vereyim:
klasörün varlığını kontrol edip yoksa oluşturmak yerine SysUtils içindeki ForceDirectories komutunu kullanabilirsiniz. ForceDirectories klasör yoksa oluşturur ve oluşturulduysa True döner. Klasör zaten varsa da True döner.
There's no place like 127.0.0.1
WWW
Cevapla
#4
Merhabalar ben genelde TPath.GetDocumentsPath bu kodu kullanıyorum. Sıkıntı çıkarmıyor.

Örneğin : TPath.GetDocumentsPath+'/xxx.dat'; şeklindei.
Cevapla
#5
(30-01-2018, Saat: 15:44)codder71 Adlı Kullanıcıdan Alıntı: Merhabalar ben genelde TPath.GetDocumentsPath bu kodu kullanıyorum. Sıkıntı çıkarmıyor.

Örneğin : TPath.GetDocumentsPath+'/xxx.dat';  şeklindei.

Artık Delphi ile farklı işletim sistemleri için derleme yapabildiğimize göre  Wink kodlarımızı da yavaş yavaş buna uygun yazarsak daha güzel olur:
TPath.Combine(TPath.GetDocumentsPath,'xxx.txt');
There's no place like 127.0.0.1
WWW
Cevapla
#6
(30-01-2018, Saat: 17:00)SimaWB Adlı Kullanıcıdan Alıntı:
(30-01-2018, Saat: 15:44)codder71 Adlı Kullanıcıdan Alıntı: Merhabalar ben genelde TPath.GetDocumentsPath bu kodu kullanıyorum. Sıkıntı çıkarmıyor.

Örneğin : TPath.GetDocumentsPath+'/xxx.dat';  şeklindei.

Artık Delphi ile farklı işletim sistemleri için derleme yapabildiğimize göre  Wink  kodlarımızı da yavaş yavaş buna uygun yazarsak daha güzel olur:
TPath.Combine(TPath.GetDocumentsPath,'xxx.txt');

Haklısınız hocam aslında artık diğer platformlara da geçmenin vakti geldi. Smile
Cevapla
#7
Cevap veren arkadaşlara teşekkürler.

Şöyle bir şeyi fark ettim kayıt ediyor ancak dosyaları bulamamadım,
Büyük ihtimal 3. sorumda bahsettiğim sebepten dolayı.

DOSYA OLUŞTURMA İÇİN:
CreateDir'e gelince şunu fark ettim  System.SysUtil için CreateDrictory kullanıyor ve windows tagları içinde bunun yerine kodumu
TDirectory.CreateDirectory() şeklide kullandım. buda System.IOUtils içerinde ForceDirectories'i kullanıyor zaten.
Ve
TPath.Combine kullanmıştım ancak nerdeyse hepsi ni denedim oluşup o yolda dosyası görememden dolayı dolayı =)

DOSYA YOLU İÇİN:
GetDocumentsPath kullanmak istememin sebebi  android tarafında GetHomePath ile kayıt yerleri çok benzesede diğer platformlarda döküman yoluna gitmesi (ki kullanıcı buralara kolaylıkla erişebilir.). Bu yüzden uygulamamda bir kaç veriyi windows tarafında ini dosyası gibi yada registry gibi bir şey ile tutmak istiyorum. Bundan dolayı homepath kullanıyım dedim.

şimdilik bulabildiğim şeyler bunlar
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TFDMemTable Problem gbg 2 557 25-11-2021, Saat: 15:26
Son Yorum: gbg
  Scrollable Form Problem malitutuncu 5 4.195 20-07-2018, Saat: 15:49
Son Yorum: malitutuncu
  SQLite virgül nokta problem[decimal seperator] malitutuncu 4 4.649 10-07-2018, Saat: 17:27
Son Yorum: malitutuncu



Konuyu Okuyanlar: 1 Ziyaretçi