• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Klasör İçindeki Xls Dosyası Silme hk

bulentkars

Altın Üye
Katılım
5 Ağustos 2005
Mesajlar
674
Excel Vers. ve Dili
2003 TR
C:\TALIMATLAR\ altında 3 adet kitap var.
1.xls - Son değiştirme tarihi : 15.06.2009
2.xls - Son değiştirme tarihi : 11.06.2009
3.xls - Son değiştirme tarihi : 11.06.2009


C:\TALIMATLAR\ Klasörünün altında 1 den fazla Xls Çalışma Kitabım var. her bir çalışma kitabının Özelliklerne bakacak eğer Değiştirme Tarihi Bugünden küçükse ilgili dosyayı silsin.
Örneğin : Yukarda yazdığım 1.xls haricinde 2 ve 3 xls dosyalarını silsin.C:\TALIMATLAR\ Klasörün altındaki Xls dosyaları bugünün tarihinden küçük ise silsin.Bu konuda yardımcı olursanız sevinirim.Şimdiden Teşekkürler.
 
Aşağıdaki kodları deneyin. Silinen dosyaları çöp kutusuna gönderecektir.

UYARI: Her ihtimale karşı dosyalarınızın yedeklerini alarak deneme yapınız.

Kod:
Declare Function SHFileOperation Lib "shell32.dll" Alias _
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
 
Type SHFILEOPSTRUCT
    hwnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Boolean
    hNameMappings As Long
    lpszProgressTitle As String
End Type
 
 Sub RecycleFile(sFile As String)
    Dim FileOperation As SHFILEOPSTRUCT
    Dim lReturn As Long
    Dim sFileName As String
    With FileOperation
        .wFunc = &H3
        .pFrom = sFile
        .fFlags = &H40
        .fFlags = &H40 + &H10
    End With
    lReturn = SHFileOperation(FileOperation)
End Sub
 
Sub dosyasil()
Set nesne = CreateObject("Scripting.FileSystemObject")
Set klasor = nesne.GetFolder("c:\TALİMATLAR")
For Each dosya In klasor.Files
If nesne.GetExtensionName("c:\TALİMATLAR\" & dosya.Name) = "xls" Then
If dosya.DateLastModified < Date Then
RecycleFile (dosya.Path)
End If
End If
Next
End Sub

NOT: Dosyalar, kill komutu ile geri dönüşüme gönderilmeden direk olarak da silinebilir. Ancak bu işlemin geri dönüşü olmadığından yukarıdaki kodları kullanmanızı öneririm.
 
Sayın Levent Bey yardımınız için çok teşekkür ederim.
Tam istediğim gibi olmuş.Burda sadece XLS dosyalarını silmek istiyorum.Yani eğer .XLA .DOC vs varsa silmessin sadece Xls uzantılarını silmek istiyorum.Bir dosyaların direk silinmesini daha iyi olacak aksi takdirde Geri dönüşüm kutusu şişecektir.Silme işlemini yaparken Yedek klasör üzerinden yapılacağından direk silinebilir.Şimdiden teşekkürler.
 
Yukarıdaki kodu yeniledim tekrar deneyebilirsiniz. Eğer direk silinecekse sadece aşağıdaki kodu kullanmak yeterlidir.

UYARI: Kodu çalıştırmadan önce mutlaka dosyalarınızın yedeklerini alınız.

Kod:
Sub dosyasil()
Set nesne = CreateObject("Scripting.FileSystemObject")
Set klasor = nesne.GetFolder("c:\TALİMATLAR")
For Each dosya In klasor.Files
If nesne.GetExtensionName("c:\TALİMATLAR\" & dosya.Name) = "xls" Then
If dosya.DateLastModified < Date Then
kill dosya.Path
End If
End If
Next
End Sub
 
Sileceğim dosyaların ismini kendim yazarken kod neydi acaba
D:\AhmetCAM\GUNLUK\RGnKlmRst.xls
ve
D:\AhmetCAM\GUNLUK\RprBykKlmRst.xls
dosyalarını silmem gerekiyor.

Şimdiden ilginize teşekküler
 
Geri
Üst