Skip to main content

AccessTr.neT


Boş Klasör / Alt Klasör Silme

Boş Klasör / Alt Klasör Silme

#7
Bir fonksiyon ya da prosedür yazdınız. Bu yazdığınızın içinde bir noktada tekrar kendisini çalıştırıyorsa o zaman recursive olmuş olur. Basit ancak asıl mesele algoritmayı kurmakta elbette.

Şu adreste bir örnek var vaktim olmadığından detayını inceleyemedim ancak muhtemelen sizin işinizi görecektir: freevbcode.com/ShowCode.asp?ID=7821

Referanslara belirttiği kütüphaneyi eklemeyi unutmayın.
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
#8
(11/01/2017, 16:36)alpeki99 yazdı: Bir fonksiyon ya da prosedür yazdınız. Bu yazdığınızın içinde bir noktada tekrar kendisini çalıştırıyorsa o zaman recursive olmuş olur. Basit ancak asıl mesele algoritmayı kurmakta elbette.

Şu adreste bir örnek var vaktim olmadığından detayını inceleyemedim ancak muhtemelen sizin işinizi görecektir: freevbcode.com/ShowCode.asp?ID=7821

Referanslara belirttiği kütüphaneyi eklemeyi unutmayın.

Çaresiz kalırsam, içine dalarım diye sık kullanılanlara eklediğim referanslardan biri buydu.

Demek ki doğru bakmışım Img-grin

Çok teşekkür ederim. Düzenlemeye çalışacağım.

Saygılar.
Cevapla
#9
Sonucu yazarsanız sonradan okuyanlara yardımcı olacaktır.
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
#10
(11/01/2017, 16:49)alpeki99 yazdı: Sonucu yazarsanız sonradan okuyanlara yardımcı olacaktır.

Başarabilirsem, ilk işim o olacak. Ben çok aradım başkaları aramasın diye Img-grin  Teşekkürler.
Normalde şu programın yaptığını yaptırmaya çalışıyorum :Img-grin  Buna mı yönlendirsem acaba Img-grin))))
.rar EmptyFolder.rar (Dosya Boyutu: 141,96 KB | İndirme Sayısı: 3)
Cevapla
#11
Merhaba,

Formda resim sildirdiğiniz butonun tıklandığında olayındaki


Kod:
Me.Requery

kodunun üzerine


Kod:
DeleteEmptyFolders (CurrentProject.Path)

kodu ekle,



Kod:
Option Compare Database
Option Explicit


kodunun hemen altına




Kod:
Public Sub DeleteEmptyFolders(ByVal strFolderPath As String)
   Dim fsoSubFolders As Folders
   Dim fsoFolder As Folder
   Dim fsoSubFolder As Folder
   Dim m_fsoObject
   Dim strPaths()
   Dim lngFolder As Long
   Dim lngSubFolder As Long
      
   DoEvents
   
   Set m_fsoObject = New FileSystemObject
   If Not m_fsoObject.FolderExists(strFolderPath) Then Exit Sub
   
   Set fsoFolder = m_fsoObject.GetFolder(strFolderPath)
   
   On Error Resume Next
   
   'Has sub-folders
   If fsoFolder.SubFolders.Count > 0 Then
        lngFolder = 1
        ReDim strPaths(1 To fsoFolder.SubFolders.Count)
        'Get each sub-folders path and add to an array
        For Each fsoSubFolder In fsoFolder.SubFolders
            strPaths(lngFolder) = fsoSubFolder.Path
            lngFolder = lngFolder + 1
        Next fsoSubFolder
        
        lngSubFolder = 1
        'Recursively call the function for each sub-folder
        Do While lngSubFolder < lngFolder
           Call DeleteEmptyFolders(strPaths(lngSubFolder))
           lngSubFolder = lngSubFolder + 1
        Loop
    End If
   
    'No sub-folders or files
    If fsoFolder.Files.Count = 0 And fsoFolder.SubFolders.Count = 0 Then
        fsoFolder.Delete
    End If
End Sub


kodu ekle,


Son olarak referanslara

"Microsoft Scripting Runtime"


isimli referansı ekle.

resim sildiğinde boş klasörleri siler.
Cevapla
#12
(11/01/2017, 18:53)ozanakkaya yazdı: Merhaba,

Formda resim sildirdiğiniz butonun tıklandığında olayındaki


Kod:
Me.Requery

kodunun üzerine


Kod:
DeleteEmptyFolders (CurrentProject.Path)

kodu ekle,



Kod:
Option Compare Database
Option Explicit


kodunun hemen altına




Kod:
Public Sub DeleteEmptyFolders(ByVal strFolderPath As String)
   Dim fsoSubFolders As Folders
   Dim fsoFolder As Folder
   Dim fsoSubFolder As Folder
   Dim m_fsoObject
   Dim strPaths()
   Dim lngFolder As Long
   Dim lngSubFolder As Long
      
   DoEvents
   
   Set m_fsoObject = New FileSystemObject
   If Not m_fsoObject.FolderExists(strFolderPath) Then Exit Sub
   
   Set fsoFolder = m_fsoObject.GetFolder(strFolderPath)
   
   On Error Resume Next
   
   'Has sub-folders
   If fsoFolder.SubFolders.Count > 0 Then
        lngFolder = 1
        ReDim strPaths(1 To fsoFolder.SubFolders.Count)
        'Get each sub-folders path and add to an array
        For Each fsoSubFolder In fsoFolder.SubFolders
            strPaths(lngFolder) = fsoSubFolder.Path
            lngFolder = lngFolder + 1
        Next fsoSubFolder
        
        lngSubFolder = 1
        'Recursively call the function for each sub-folder
        Do While lngSubFolder < lngFolder
           Call DeleteEmptyFolders(strPaths(lngSubFolder))
           lngSubFolder = lngSubFolder + 1
        Loop
    End If
   
    'No sub-folders or files
    If fsoFolder.Files.Count = 0 And fsoFolder.SubFolders.Count = 0 Then
        fsoFolder.Delete
    End If
End Sub


kodu ekle,


Son olarak referanslara

"Microsoft Scripting Runtime"


isimli referansı ekle.

resim sildiğinde boş klasörleri siler.

Merhaba Ozan Hocam;

Deneyip sonuçları bildiririm.

** Bu arada resim sildirdiğimiz butonun değil "Kaydet" butonunun yapması gerekiyor bu işi. Form bilgileri değişince, resmi eski klasöründen alıp, yeni klasöre, doğru adıyla yapıştırmalı. Bunu yapıyor zaten. Arkada kalan klasörleri temizlemem lazım. Dosya yollarını belirterek bir türlü olmadı. Muhakkak dolu bir klasöre denk geliyor. (Ya da ben beceremedim)

Teşekkür ederim.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da