none
Listbox dosya sayısı RRS feed

  • Soru

  • Server olarak kullanılan bir PC mizde yerel ip uzerinden  ortak paylaşıma açılmış bir klasörümüz ve içinde dosyalarımız var normalde programımız bu klasörün içindeki dosyalar üzerinde işlem yapıyor (kaydet,sil,güncelle vb..) ve program açıldığında bu klasör içindeki dosyalar bir lisbox da listeleniyor ve hali hazırda dosya sayısı veriliyor.

    şimdi benim istediğim bir pc den bu klasör üzerinde özellikle silme ve kaydetme esnasında işlem yapıldığında anlık olarak diğer programı açık tüm arkadaşlarda listbox larında bunu görmesi (dosyaların kaydedilmesi ve silinmesi) ve anlık dosya sayısının yenilenmesi 

    ben bunu basit bir timer mantığı ile yaptım ancak hali hazırda dosya sayısı listbox ta artıkca listbox sürekli yenileme moduna giriyor listbox barı kullanamıyorum

    4 Eylül 2020 Cuma 14:34

Tüm Yanıtlar

  • FileSystemWatcher bildiğim kadarıyla UNC yollarda çalışabiliyo0;r önceliğiniz o olmalı. Timer ile yaptığınızda da doğrudan listbox'ı güncellemek yerine mevcut veri ile yeni veriyi karşılaştırıp sadece ilgili satırlarda güncelleme yapabilirsiniz.

    www.cihanyakar.com


    4 Eylül 2020 Cuma 14:43
  • FileSystemWatcher  bu konuyu biraz araştırdım genelikle klasör ve dosya dinleme üzerine yanılmıyorsam . basit bir timer mantığından kastım timer belirli aralıklarla örnegin 5000 ms bir mevcut kod ile bu koddan kastım dosyaları listbox a çağıran kodu tekrarlıyor bu neden le örneğin listbox u aşağı doğru çekemiyorum dosya ismini tıklayamıyorum taki timer i pasif hale getirene kadar bu seferde paylaşılan klasöre bir dosya kaydedildiğinde ben ancak programı kapatıp açınca göre biliyorum benim maksadım anında görebilmek.
    4 Eylül 2020 Cuma 14:54
  • Cevabım değişmeyecek, ya eksik bilgi veriyorsunuz ya da fsw yi araştırmadınız. Ayrıca timer için de öneride bulundum.

    www.cihanyakar.com


    4 Eylül 2020 Cuma 17:36
  • öncelikle ilgin için teşekkür ederim;

    zaten fsw yi çok iyi araştırdığımı söylemedim ; belki cevabı fsw dedir onu öğrenmeye çalışıyorum.

    ben dosyanın ne zaman oluştuğunu silindiğini değiştirildiğini kopyalandığını vs.. görsel olarak mesaj olarak istemiyorum.

    elimde bir klasör onun içinde dosyalar  programda bir listbox var.  ve program her açıldığında bu dosyalar listbox a listeleniyor yani basit bir listeleme sınıfı ile.

    başka bir kullanıcı bu dosyalardan birini silince yada yeni bir dosya oluşturunca klasörde. kendi açık programımdaki listboxta eş zamanlı bunu görüp kayıt ve sayısını yeniden listelemesini istiyorum bunu timer yaptım olmadı çunkü Form_Load kısmına attığım için timer sürekli yeniliyor  bu sebeğle listbox ta hiç bir fonksiyonu kullanamıyorum belki oluyordur ama ben bir yerini yanlış yapıyor olabilirm.

    4 Eylül 2020 Cuma 18:23
  • Cevap fsw de ise daha neyi soruyorsunuz?
    Timer kullanıyorsanız yanlış yapıyorsunuz. Yapmak istediğiniz şey zamana bağlı değil, olaya bağlı. Siz inatla, hem timer kullanıp hem de thread'ın senkronize olacağı kod istiyorsunuz ki yaptıklarınız boşa gitmesin diye. Ama aklı başında kimse bu yanıtı size vermeyecek. for ile if öğrenip, gelip forum yanıt yazanlar size uyan yanıtı verir belki.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    4 Eylül 2020 Cuma 21:21
    Moderatör
  • Merhaba öyle fazla kodlama bilgim vs yok fakat bir öneride bulunmak istedim

    Sonuç olarak istediğiniz şey bir işlem yapıldığında diğer uygulamalarda dosyaların tekrardan listelenmesi diye düşünüyorum.

    Şöyle ki uygulamada eğer bir dosya silme işlemi yapıldığında filezilla veya başka bir server 'a değişiklik yapıldığı verisini bir text dosyasına gönderseniz daha sonrasında diğer uygulamalarında o text dosyasında değişiklik aramasını sağlarsanız eğer varsa listeyi güncellemesini sağlarsanız belkide istediğiniz şeyi elde etmiş olursunuz bu işlem biraz ilginç ama hiçbir şeyden anlamadıysanız ve fazla bilginiz yoksa denemenizi öneririm

    Aynısını güncelleme sistemi için kullanmıştım sonuç alarak işlem dışında her şey aynı.

    5 Eylül 2020 Cumartesi 16:11
  • Nerede anlaşamadığımızı anlamıyorum. fsw dosyalarda ekleme,çıkarma, silme yapıldığında size haber verecek. Timer la uğraşmanın anlamı yok. Hem de sadece değişen dosyayı bildiğiniz için tüüüm listeyi yenilemek zorunda da değilsiniz. Ve tekrar ediyorum, illa timer ile çözecekseniz de tüm kutuyu sürekli güncellemeniz mantıklı değil. ListBox'a bind ettiğiniz datasource'u sadece değişikliğe göre güncellemeniz yeterli olacaktır. 10000 tane dosya varsa ve 1 dosya eklendi ise sadece onu listeye ekleyin tekrardan doldurmayın... 

    www.cihanyakar.com

    5 Eylül 2020 Cumartesi 18:04