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.
(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
Çok teşekkür ederim. Düzenlemeye çalışacağım.
Saygılar.
Sonucu yazarsanız sonradan okuyanlara yardımcı olacaktır.
(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
))))
Merhaba,
Formda resim sildirdiğiniz butonun tıklandığında olayındaki
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.
(11/01/2017, 18:53)ozanakkaya yazdı: Merhaba,
Formda resim sildirdiğiniz butonun tıklandığında olayındaki
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.