Boş Klasör / Alt Klasör Silme
Tarih
11/01/2017 14:21
Konu Sahibi
donepezil
Yorumlar
14
Okunma
228
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



donepezil
Öğrenmek Lazım
Kullanici Avatari
Onursal
O.... D....
158
07/03/2009
16
Afyon
Fizikçi
Ofis 2013 32 Bit
16/01/2017,18:24
Sponsor Reklam
Merhaba;

Hem forum içinde hem de başka kaynaklarda yaptığım aramalarda işime yarayacak bir çözüm maalesef bulamadım. Bulduğum kodlar da dönüştürülemeyecek kadar karmaşıktı.

Sorun şu:

Herhangibir dosya yolundaki (örneğin veritabanının olduğu CurrentProject.Path\resimler ve alt klasörlerinde) boş klasörleri silmemiz gerekiyor. Proje içindeki döngüler çok karmaşık olduğu için klasör adı vererek bunu yaptırmak imkansız hale geldi. (Bu arada RmDir komutu da işe yaramıyor)

Bunu yapacak genel bir kod nasıl olmalı? (Örneğin ana klasörün alt klasörlerine bakıp, boyutu "sıfır" olanları silmek gibi?

Teşekkürler...
Cevapla

atoz112
Uzman
Kullanici Avatari
Uzman
4.781
04/08/2009
İstanbul
Ofis 2007
Dün,18:20
sayın donepezil,

bahsettiğiniz talebinize yönelik olarak;

öncelikle,bir hususu belirtmekte fayda var kanısındayım.

RMDIR Komutu;
eğer içerisinde başka klasör mevcutsa klasör silme işlemini uygulamaz ve hata verir.sadece,içeriği tamamen BOŞ ise işlemini gerçekleştirir.

ÖRNEK

uygulamanın olduğu klasörün içerisinde a_alt_klasoru adlı ve bu a_alt_klasoru adlı klasörün de içerisinde b_alt_klasoru adlı alt klasör olduğu geçerli olsun.

[b]a_alt_klasoru [/b]ve b_alt_klasoru alt klasörlerini silmek istediğimizde,

1) önce en içte yer alan alt klasörün (b_alt_klasoru) içerisinde eğer herhangi bir DOSYA ya da DOSYALAR mevcutsa,bu dosyaları tamamen silmelisiniz.bunu da KILL Komutu ile yapmalısınız.

2) sonrasında da,sırasıyla yine içteki alt klasörlerden başlamak sureti ile RMDIR Komutunu kullanarak içerden dışa doğru tüm klasörleri silmelisiniz.

Kod:
Kill CurrentProject.Path & "\" & "a_alt_klasoru" & "\" & "b_alt_klasoru" & "\" & "*.*"

RmDir CurrentProject.Path & "\" & "a_alt_klasoru" & "\" & "b_alt_klasoru"

RmDir CurrentProject.Path & "\" & "a_alt_klasoru"


kod satırlarını kullanarak silebilirsiniz.

bilginize...iyi çalışmalar,saygılar.

Cevapla

atoz112
Uzman
Kullanici Avatari
Uzman
4.781
04/08/2009
İstanbul
Ofis 2007
Dün,18:20
Sponsor Reklam
sayın donepezil,

bir önceki mesajda yazılı olan kodları kullandığınızda sorunsuz çalışmaktadır fakat buna bir de kontrol kodları dahil edilerek kullanmak daha yerinde olacaktır.

çünkü;
tekrar aynı butonu tıklama durumu veya bu kodları çalıştırma işlemi söz konusu olursa,herhangi bir hata iletisi vermemesini sağlamak gerekmektedir.

bunun için de;

Kod:
1
2
3
4
5
6
7
8
9
10
11
If Len(CurrentProject.Path & "\" & "a" & "\" & "b" & "\" & "*.*") > 0 Then
MsgBox ("Dosya ve klasörler silinmiştir."), vbInformation, "DOSYA VE KLASÖR SİLİNDİ UYARISI"
Exit Sub
Else
Kill CurrentProject.Path & "\" & "a" & "\" & "b" & "\" & "*.*"

RmDir CurrentProject.Path & "\" & "a" & "\" & "b"

RmDir CurrentProject.Path & "\" & "a"

End If


yukarıdaki kodları kullanmak daha geçerli olacaktır.

bilginize...iyi çalışmalar,saygılar.

Cevapla

donepezil
Öğrenmek Lazım
Kullanici Avatari
Onursal
O.... D....
158
07/03/2009
16
Afyon
Fizikçi
Ofis 2013 32 Bit
16/01/2017,18:24
(11/01/2017, 14:55)atoz112 Adlı Kullanıcıdan Alıntı: sayın donepezil,

bir önceki mesajda yazılı olan kodları kullandığınızda sorunsuz çalışmaktadır fakat buna bir de kontrol kodları dahil edilerek kullanmak daha yerinde olacaktır.

çünkü;
tekrar aynı butonu tıklama durumu veya bu kodları çalıştırma işlemi söz konusu olursa,herhangi bir hata iletisi vermemesini sağlamak gerekmektedir.

bunun için de;

Kod:
1
2
3
4
5
6
7
8
9
10
11
If Len(CurrentProject.Path & "\" & "a" & "\" & "b" & "\" & "*.*") > 0 Then
MsgBox ("Dosya ve klasörler silinmiştir."), vbInformation, "DOSYA VE KLASÖR SİLİNDİ UYARISI"
Exit Sub
Else
Kill CurrentProject.Path & "\" & "a" & "\" & "b" & "\" & "*.*"

RmDir CurrentProject.Path & "\" & "a" & "\" & "b"

RmDir CurrentProject.Path & "\" & "a"

End If


yukarıdaki kodları kullanmak daha geçerli olacaktır.

bilginize...iyi çalışmalar,saygılar.


Sn Atoz teşekkür ederim;

Ama maalesef bu konuyu açmadan önce yukarıda belirttiğiniz tüm yolları denedim. Maalesef bahsettiğim "çözüm bulamadım" söylevi bunun içindi. Formun yapacağı alternatifler dahilinde bu algoritma bazen çalışmakta ama bazı ihtimallerde hata vermekte. Öncelikle klasör içeriğini silme işlemini bu işlemden önceki kodlar yapmakta. Klasör boş kaldıktan sonra aynı üst klasörün altında yan yana pekçok boş klasör kalmakta. Ama alt klasörlerden 1 tanesi muhakkak dolu olmak zorunda. Bundan dolayı klasör boyutlarını kontrol eden bir çözüm sanıyorum daha uygun olacaktır.

İncelemeniz bakımından şurada  sizin de yardımınızla çözümler bulduğumuz çalışmanın son halini ekliyorum. Sizin de yardımda bulunduğunuz kodları çok daha temiz ve sade olduğunu düşündüğüm bir çalışmaya aktardım. Kullanıcının tüm hamle olasılıklarına göre klasörleri açıyor, resimleri taşıyor, klasör açtırmayan değişken (örnekte Tc No) değiştirilmişse sadece resim adını değiştiriyor. Sizi bu konuda daha fazla yormamak için genel soru açmak istemiştim.

Örnek çalışma ekte.

Saygılar.


Ek Dosyalar
.rar   resim_ekleme_klasor_acma_donepezil.rar (Dosya Boyutu: 687,54 KB / İndirme Sayısı: 3)
Cevapla

alpeki99
Yeniden başlayabilmek...
Kullanici Avatari
Uzman
O....
6.020
29/10/2008
Ordu
Ofis 2013 32 Bit
11/01/2017,17:51
Sponsor Reklam
Recursive olarak çözüm getirebilirsiniz. Sabit bir klasör adı ve miktarı olmayacağı için ancak bu yöntemle çözülebilir.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla

donepezil
Öğrenmek Lazım
Kullanici Avatari
Onursal
O.... D....
158
07/03/2009
16
Afyon
Fizikçi
Ofis 2013 32 Bit
16/01/2017,18:24
(11/01/2017, 16:09)alpeki99 Adlı Kullanıcıdan Alıntı: Recursive olarak çözüm getirebilirsiniz. Sabit bir klasör adı ve miktarı olmayacağı için ancak bu yöntemle çözülebilir.

Sn. alpeki99;

Maalesef recursive fonksiyon yazabilecek kadar vb kod bilgim yok Img-cray

Belki bir örnek çalışmada bulursam düzenleyebilirim.

İlginiz için teşekkür ederim.
Cevapla


Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  Listede seçili olanı silme mustim1547 2 65 13/01/2017, 10:45 mustim1547
Çözüldü Liste kutusundan seçili olanı tablodan silme... direnist 11 3.177 13/01/2017, 08:07 mustim1547
Çözüldü satırdaki isimlerde otomatik klasör açma manyetix 19 3.907 05/01/2017, 00:20 donepezil
  Form üzerinden alt veri tablosuna ekleme silme işlemi nightashes 9 232 11/12/2016, 15:27 nightashes
Photo İlişkili Tablolarda FORM üzerinden veri silme Mesut Kaytan 6 162 04/12/2016, 22:40 Mesut Kaytan


Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2017 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya