Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Visual Basic

Cevapla
 
LinkBack Seçenekler
Eski 13/03/2008, 21:27   #1 (permalink)
Üye
 
Üyelik Tarihi: 04/2007
Mesaj: 86
Varsayılan dosya silme

ben istediğim bi klasör içindeki istediğim bir dosyayı sile biliyorum ancak benim istediğim bilgisayarın içindeki ali ve köy verileri klasörleri hariç bütün .xls uzantılı dosyaları silmek istiyorum bunu bir proğram ile nasıl yapa bilirim sorunumu başlat-bul komutu ile bütün .xls leri bulup sile bilirim ama bunu bi proğram nası yapar ben bunu merak ediyorum
ali çetin hatta değil   Alıntı Yaparak Yanıtla
Eski 13/03/2008, 23:13   #2 (permalink)
Üye
 
Üyelik Tarihi: 06/2007
Mesaj: 37
Varsayılan

belki daha güzel bir yolu vardirda ben nasil yapardim onu anlatayim..

c#da yapardim.. ilk önce c klasörünü okurdum.. klasörün icindeki bütün klasörleri bi liste kaydederdim.. sonra onlarin alt klasörleri.. sonra onlarin alt klasörleri derken iste.. sonra bütün klasörlerde .xls dosyalari taratirdim.. sonrada bunlari silerdim..

Directory.GetFiles
DirectoryInfo
FileInfo vs.. ile calisarak yapabilirsin..

Kolay gelsin..
Qonyali hatta değil   Alıntı Yaparak Yanıtla
Eski 14/03/2008, 13:43   #3 (permalink)
Silversword
 
Revlis Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2003
Yer: Antalya
Mesaj: 1,359
Varsayılan

Alıntı:
ali çetin, mesajından alıntı: Mesajı Gör
ben istediğim bi klasör içindeki istediğim bir dosyayı sile biliyorum ancak benim istediğim bilgisayarın içindeki ali ve köy verileri klasörleri hariç bütün .xls uzantılı dosyaları silmek istiyorum bunu bir proğram ile nasıl yapa bilirim sorunumu başlat-bul komutu ile bütün .xls leri bulup sile bilirim ama bunu bi proğram nası yapar ben bunu merak ediyorum
Bunu bir proğram ile değil de bir program ile yapabilirsiniz.

Alıntı:
Qonyali, mesajından alıntı: Mesajı Gör
belki daha güzel bir yolu vardirda ben nasil yapardim onu anlatayim..

c#da yapardim.. ilk önce c klasörünü okurdum.. klasörün icindeki bütün klasörleri bi liste kaydederdim.. sonra onlarin alt klasörleri.. sonra onlarin alt klasörleri derken iste.. sonra bütün klasörlerde .xls dosyalari taratirdim.. sonrada bunlari silerdim..

Directory.GetFiles
DirectoryInfo
FileInfo vs.. ile calisarak yapabilirsin..

Kolay gelsin..
C# ın dosyalar konusunda Vb.net den üstün bir tarafı yok. Sen c# da yapabiliyor olabilirsin, fakat soru basic bölümünde sorulduğu için "ben c# da yapardım böle böle yazardım" gibi cevap vermek tamamen saçmalık.


Dir fonksiyonu ile bir dizindeki xls dosyalarını hatta dosya adında özel bir metin aratabilirsiniz.

kabaca kullanımı:
Kod:
        Dim a As String
        Dir("*.*") '*.xls  , *ali*.xls
        Do
            a = Dir()
            If a = Nothing Then Exit Do ' vb6 da a=""
            MsgBox(a)
        Loop
tabi vb.net de
Directory.GetFiles
DirectoryInfo
FileInfo
gibi fonksiyonlarda kullanılabilir..
__________________
||||Revlis|||||
Revlis hatta değil   Alıntı Yaparak Yanıtla
Eski 14/03/2008, 14:07   #4 (permalink)
Üye
 
Üyelik Tarihi: 06/2007
Mesaj: 37
Varsayılan

@revlis arkadas bunu vbde nasil yaparim diye sormamis bunu bir program ile nasil yaparim diye sormus.. tamam diyecektin konu vb bölümünde ama ben kendi bildigim alanda nasil yapilabilecegini anlattim, arkadasda bunun bir program ile nasil yapilabilecegini sormus.. yazdigim cevaba direk "tamamen sacmalik" diyecegine verdigim fonksiyonlarin vb.netde oldugunu söyleyebilirdin.. neyse hadi hayirli cumalar..
Qonyali hatta değil   Alıntı Yaparak Yanıtla
Eski 14/03/2008, 16:40   #5 (permalink)
Üye
 
Üyelik Tarihi: 04/2007
Mesaj: 86
Varsayılan teşekkür

ilginize teşekkür ederim ayrıca program uyarınızı birdaha dikkate alacağımdan emin olun
ali çetin hatta değil   Alıntı Yaparak Yanıtla
Eski 15/03/2008, 12:03   #6 (permalink)
Üye
 
civil Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2007
Mesaj: 460
Varsayılan

@Qoanyali C# ile ilgili fikirlerinizi bence oraya saklayın Gelelim senin soruna

Önce bir DriveListBox, Dirlistbox ve Filelistbox nesnelerini kullanacaksın Filelistbox ın filtresini .xls yapki sadece xls dosyalarını görsün bu nesenelerle ilgili bilgilere netten ulaşabilirsin daha sonra bu nesneler ile bilgisayardaki yerel disklerin tüm klasörlerini tarayacaksıki işte işin güzel tarafı bura üst klasörlere girmek kolay ya alt klasörler dersen işte burada senin algoritma gücüne bağlı aşağıda ki kodlara bak orada kopyalama apisi kullanılmış sen dosya silme apisini kullanacaksın...

Kod:
Dim index(0) As String
        Dim kmatris() As Integer
        Dim klasor As Byte
        Dim sayac2 As Byte
        Dim sayac3 As Byte
        Dim sayac4 As Byte
        Dim sayac5 As Integer

        'Diskleri tarayan sayaç
        For sayac4 = 1 To artan

            DriveListBox1.SelectedItem = DriveListBox1.Items.Item(sayac1 - sayac4)
            ksayaci = ksayaci + 1
            System.IO.Directory.SetCurrentDirectory(gklasor)
            System.IO.Directory.CreateDirectory(ksayaci)
            System.IO.Directory.SetCurrentDirectory(ksayaci)

            

            FileListBox1.Path = DirListBox1.Path
            klasor = DirListBox1.DirListCount


            'Ana klasörleri tarayan sayaç
            For sayac3 = 0 To klasor
                DirListBox1.Path = DriveListBox1.Drive
                DirListBox1.Path = DirListBox1.Items.Item(sayac3)
                FileListBox1.Path = DirListBox1.Path
                'Klasör içerisinde dosya bulunması durumu 
                If FileListBox1.Items.Count > 0 Then
                    'Klasör içerisindeki dosyaları kopyalayan sayaç
                    For sayac2 = 0 To FileListBox1.Items.Count - 1
                        CopyFile(DirListBox1.Path + "\" + FileListBox1.Items.Item(sayac2), FileListBox1.Items.Item(sayac2), True)
                    Next sayac2

                End If
                If sayac3 > 0 Then
                    'Bu kısımda alt klasörlere geçilecek bu nedenle dizi yeniden boyutlandırılacak.
                    ReDim Preserve kmatris(0)
                    kmatris(0) = DirListBox1.DirListCount
                    'Ana klasör içerisinde klasör kalmayana kadar işleme devam edeceğim 
                    index(0) = DirListBox1.Path
                    sayac5 = 0
                    'Alt matris içerisine giriyoruz.
                    While kmatris(0) > 0
                        'Burada ise alt klasör katmanını bulacağım 
                        sayac5 = kmatris(0)
                        DirListBox1.Path = index(0)
                        DirListBox1.Path = DirListBox1.Items.Item(sayac5 + 1)



                        If DirListBox1.DirListCount <> 0 Then

                            Dim aklasor As Integer = 0
                            'Burada şunu anlıyoruz klasör içerisinde klasör var.
                            'Bu kısımda yazacağımız döngülerle alt klasörleri tamamen tarayacağız.
                            aklasor = aklasor + 1
                            ReDim Preserve index(aklasor)
                            index(aklasor) = DirListBox1.Path
                            ReDim Preserve kmatris(aklasor)
                            kmatris(aklasor) = DirListBox1.DirListCount
                            'İşte tüm alt klasörlere buradan gideceğiz.
                            'Denetleme yapıyoruz tüm klasörlerin tarandığından emin olacağız.
                            While kmatris(aklasor) > 0
                                'Dirlistboxın konumunu seçili yer yapıyorum.
                                DirListBox1.Path = index(aklasor)

                                DirListBox1.Path = DirListBox1.Items.Item(kmatris(aklasor) + kmatris.Length)
                                FileListBox1.Path = DirListBox1.Path
                                'Burada kopyalama işlemini yapıyorum 
                                If FileListBox1.Items.Count > 0 Then
                                    For sayac2 = 0 To FileListBox1.Items.Count - 1
                                        CopyFile(DirListBox1.Path + "\" + FileListBox1.Items.Item(sayac2), FileListBox1.Items.Item(sayac2), True)
                                    Next sayac2
                                End If
                               
                                kmatris(aklasor) = kmatris(aklasor) - 1
                                If DirListBox1.DirListCount <> 0 Then
                                    'Dizi boyutunu artırıyoruz 
                                    aklasor = aklasor + 1
                                    'Diziyi uygun biçimde boyutlandırıyoruz.
                                    ReDim Preserve kmatris(aklasor)
                                    ReDim Preserve index(aklasor)
                                    index(aklasor) = DirListBox1.Path
                                    'klasör değerini yazıyoruz... 
                                    kmatris(aklasor) = DirListBox1.DirListCount
                                End If
                                If kmatris(aklasor) = 0 And aklasor > 0 Then
                                    aklasor = aklasor - 1
                                    ReDim Preserve kmatris(aklasor)
                                    ReDim Preserve index(aklasor)
                                End If


                            End While
                        End If

                        FileListBox1.Path = DirListBox1.Path
                        If FileListBox1.Items.Count > 0 Then
                            For sayac2 = 0 To FileListBox1.Items.Count - 1
                                CopyFile(DirListBox1.Path + "\" + FileListBox1.Items.Item(sayac2), FileListBox1.Items.Item(sayac2), True)
                            Next sayac2
                        End If
                        kmatris(0) = kmatris(0) - 1

                    End While
                End If
            Next sayac3
        Next sayac4
Bazı değişkenler tanımlanmamış olabilir onları yukarıdaki kısımda tanımlamıştım burada sana döngüleri anlamak kalıyor sonrası kolay ...

Kodda gereksiz döngüler olabilir ama zihnimde bu algoritmayı tam oturtana kadar baya uraştım üşendiğimden de şimdilik böle bıraktım ilerde daha az döngü değişken ve kod ile daha güzel olacak ...
__________________
Yorum Yapmak Olayları Sadece Kenardan İzleyenlerin Lüksüdür
civil hatta değil   Alıntı Yaparak Yanıtla
Eski 15/03/2008, 12:06   #7 (permalink)
Üye
 
civil Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2007
Mesaj: 460
Varsayılan

Bide yukarıdaki döngülere gerek yoktu bunu basit bir fonksiyonla halledebilirdin diyeniniz varmı varsa sölesin çok merak ediyorum
__________________
Yorum Yapmak Olayları Sadece Kenardan İzleyenlerin Lüksüdür
civil hatta değil   Alıntı Yaparak Yanıtla
Eski 17/03/2008, 13:06   #8 (permalink)
Silversword
 
Revlis Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2003
Yer: Antalya
Mesaj: 1,359
Varsayılan

Alıntı:
civil, mesajından alıntı: Mesajı Gör
Bide yukarıdaki döngülere gerek yoktu bunu basit bir fonksiyonla halledebilirdin diyeniniz varmı varsa sölesin çok merak ediyorum
olmaz mı

sadece bir klasörde istenen dosyaları bulan bir fonksiyon yazacaksın
istediğin dosyaların yanında klasörler de dönüyorsa aynı fonksiyonu içten çağıracaksın. Fonksiyon bulduğu dosya adlarını global bir değişkene ekleyecek.

İşlemi hızlandırmak için thread lerden faydalanıp her alt klasörü farklı bir thread ile aratabilirsin..
__________________
||||Revlis|||||
Revlis hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Fso ile URL den dosya silme C-yber ASP 2 31/10/2007 21:52
Dosya silme hatası fooxx Visual Basic 5 02/06/2007 23:39
Ftp den dosya silme... eNVeR.SaLiH PHP 7 18/07/2006 11:57
dosya silme ByKaDo PHP 3 27/09/2005 22:04
dosya silme hatası! eylo02 Windows 1 18/12/2004 02:31


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 19:15.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net