Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
IP deki bir klasör içindeki dosyaları listeleme nasıl?
#11
Arkadaşlar merhaba,

Ağdaki bir bilgisayardan ana bilgisayarda data dosyasının var olup olmadığının kontrolünü yapıp var ise bağlantı yaptırmam gerekiyor. Bunu ana bilgisayarın ip adresini yazarak aşağıdaki iki farklı kod ile yaptırmaya çalıştım ama ikisinde de belirtilen dizinde dosya var olmasına rağmen dosya yok diyor. Ana bilgisayarda 3050 portu açık. Nasıl bir yöntem izlemeliyim?

   if FileExists('10.77.5.53:C:\Deneme\DATA.FDB') = True then
     ShowMessage('Var')
  else
     ShowMessage('Yok')

   if FileExists('10.77.5.53/3050:C:\Deneme\DATA.FDB') = True then
    ShowMessage('Var')
 else
    ShowMessage('Yok')
Cevapla
#12
Ağdaki bir dosyaya erişim ile Firebird Connection bileşeninin erişim farklıdır. 
Ağdaki herhangi bir dosyaya erişim için şu adımları izlemelisiniz.

1- Öncelikle IP'ye ping atın.
2- IP'den ping yanıtı dönüyorsa fiziksel olarak dosyanın (DB) varlığını kontrol edin.
3- Dosyaya erişim yetkisi varsa FB Connection ile bağlanın.

Örn.
Dosya yolu şöyle olsun.
IP: 10.77.5.53
DB dizin: C:\Deneme\
DB dosyası: DATA.FDB

Dosya kontrolü:  \\10.77.5.53\C$\Deneme\DATA.FDB
FB bağlantısı:     10.77.5.53:C:\Deneme\DATA.FDB
Begin : = end / 2;
Cevapla
#13
Hocam şu şekilde kullandım ama yine yok mesajı alıyorum.
   if FileExists('\\10.77.5.53\C$\Deneme\DATA.FDB') = True then
     ShowMessage('Var')
  else
     ShowMessage('Yok')

Bu kod DATA.FDB dosyasının bulunduğu bilgisayarda "Var", diğer bilgisayarlarda "Yok" mesajını veriyor. Ping atma olayını bilmediğimden yapamadım.
Cevapla
#14
(17-02-2022, Saat: 09:21)sunbeki Adlı Kullanıcıdan Alıntı: Hocam şu şekilde kullandım ama yine yok mesajı alıyorum.
   if FileExists('\\10.77.5.53\C$\Deneme\DATA.FDB') = True then
     ShowMessage('Var')
  else
     ShowMessage('Yok')

Bu kod DATA.FDB dosyasının bulunduğu bilgisayarda "Var", diğer bilgisayarlarda "Yok" mesajını veriyor. Ping atma olayını bilmediğimden yapamadım.
İyi günler 
Ping atmak için bilgisayarınızda Başlat veya Sol attaki Kare simgesini tıklayın
Çalıştır  bulun içine cmd yazın enterleyin (veya doğrudan CMD bulun)
Siyah komut sistemine geçmiş olacaksınız 
burada
ping  10.77.5.53 veya ping bilgisayar_adi Enter
lost %0 olmalı
işiniz bitince Exit ile çıkabilirsiniz.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#15
(17-02-2022, Saat: 09:21)sunbeki Adlı Kullanıcıdan Alıntı: Hocam şu şekilde kullandım ama yine yok mesajı alıyorum.
   if FileExists('\\10.77.5.53\C$\Deneme\DATA.FDB') = True then
     ShowMessage('Var')
  else
     ShowMessage('Yok')

Bu kod DATA.FDB dosyasının bulunduğu bilgisayarda "Var", diğer bilgisayarlarda "Yok" mesajını veriyor. Ping atma olayını bilmediğimden yapamadım.

Herhangi bir klasör açın.
Adres satırına (üst kısmında klasör dizinini gösteren alan), \\10.77.5.53\C$\Deneme\ yazın ve enter tuşuna basın.
Bu şekilde ulaşabiliyorsanız, sorun yok demektir. 
Fakat bu yöntemle erişemiyorsanız, zaten o PC ye erişim yetkiniz yok demektir.

Pink kontrolü için CMD açın.
Komut satırına ping 10.77.5.53 yazmanız yeterli olacaktır.
Bu komutu çalıştırdığınızda; Bytes, time TTL gibi sonuçlar dönecektir. Bu değerler karşı bilgisayara isteğin sorunsuz gittiğini ve geri dönüş yaptığını gösterir.
Sonuç alamıyorsanız yine o PC ye erişim yetkiniz yok demektir.
Begin : = end / 2;
Cevapla
#16
Merhaba,
Bağlantı kodlarınızı aşağıdaki şekilde Try Except Bloğu içine alarak yaptığınızda dosyayı bulamazsa veya diğer bilgiler hatalı ise size uyarı verecektir. Hata kodunu da gösterecektir. örnekte kullanılan Connection bileşeni  TFDConnection!

Ayrıca bağlantı için aliases kullanmanızı şiddet kullanmadan tavsiye ederim Smile

C:\Program Files (x86)\Firebird\Firebird_2_5\aliases.conf dosyasını yönetici olarak açın ve "#" sembolerinin hemen altına "MYDB = C:\Deneme\DATA.FDB" satırını ekleyin. Dosyayı kapatıp kaydedin. Bundan sonraki bağlantılarınızda tam dosya yolunu yazmak yerine MYDB yazmanız yeterli olacaktır.

*Yukarıdaki aliases tanımı Server olarak kullandığınız makinede tanımlamanız gerekiyor*

 Try
   With FD_FB do
   Begin
     case Connected of
       True: Connected:=False;
     end;
     DriverName    := 'FB';
     LoginPrompt   := False;
     Params.Clear;
     Params.Add('Database='+pDatabase); //MYDB
     Params.Add('Protocol=TCPIP');
     Params.Add('Server='+pServer); //   10.77.5.53
     Params.Add('User_Name='+pUser);  // SYSDBA     --varsayılan
     Params.Add('Password='+pPass);     // masterkey  --varsayılan
     Params.Add('CharacterSet=WIN1254');
     Params.Add('ExtendedMetadata=True');
     Params.Add('Port=3050');
     Params.Add('IBAdvanced=Config=WireCompression=true');
     Params.Add('DriverID=FB');
     Transaction                   := DM.FD_FBTR;
     DM.FD_FBTR.Connection         := DM.FD_FB;
     DM.FD_FBTR.Options.Isolation  := xiReadCommitted;
     Connected :=True;
   End;
 except on E: Exception do
   Begin
     FrmBildirim:=TFrmBildirim.Create(Self);
     FrmBildirim.Mesaj.Text:='Firebird Database Bağlantısı Başarısız oldu!'+#13#13+
                             'Hata Kodu : '+E.Message;
     FrmBildirim.ShowModal;
     Result:=False;
   End;
 End;
Cevapla
#17
Yardımlarınız için teşekkür ederim arkadaşlar. Önerileriniz doğrultusunda denemeleri yapıp sonuçları paylaşacağım.
Cevapla
#18
Ping atma işini çözdük gibi ama şimdide "cannot allocate socket" hatası veriyor. Programı yönetici olarak çalıştırınca sorunsuz çalışıyor ama kullanıcıya her zaman yönetici olarak çalıştır diyemeyiz. Bu sorunu nasıl çözeriz acaba?
Cevapla
#19
(17-02-2022, Saat: 21:38)sunbeki Adlı Kullanıcıdan Alıntı: Ping atma işini çözdük gibi ama şimdide "cannot allocate socket" hatası veriyor. Programı yönetici olarak çalıştırınca sorunsuz çalışıyor ama kullanıcıya her zaman yönetici olarak çalıştır diyemeyiz. Bu sorunu nasıl çözeriz acaba?

Çalıştırdığın programın masaüstüne kısayol oluştur.
Kısayol sağ tuş özellikler

Uyumluluk
burada Programı Yönetici olarak çalıştır   Tikini sec

Uygula Tamam

Artık sürekli Yönetici çalıştırır.

Bu işlemi Delphi de programı derlerken yapabilirsin ihtiyaç olursa onuda paylaşırım.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#20
Kullandığım bir uygulama ağ sürücüsüne bağlanıyordu. Sebebi PC her açıldığında ilk önce bir kereye mahsus Explorer ile klasöre giriş yapmam gerekiyordu. Sizde de böyle bir durum mu var acaba?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Question Delphi formunu nasıl otomatik tam ekran yapabilirim ? erdemklt0 2 670 23-01-2026, Saat: 10:02
Son Yorum: csunguray
  SuperObject dosyaları hakkında adelphiforumz 2 796 18-06-2025, Saat: 11:02
Son Yorum: engerex
  TMS Web Core- REST İşlemlerini Nasıl Yapabilirim? kajmerantime 0 540 13-06-2025, Saat: 14:07
Son Yorum: kajmerantime
  Delphi 7 deki pencereleri nasıl sabitleyebilirim? mxpain 1 667 12-12-2024, Saat: 08:50
Son Yorum: 3ddark
  Delphi IDE project kısmına Klasör ekleme yanniosman 1 696 01-12-2024, Saat: 12:17
Son Yorum: frmman



Konuyu Okuyanlar: 1 Ziyaretçi