User Tag List

Gösterilen sonuçlar: 1 ile 5 ve 5

VB.NET'te karşılaştırmalı dosya silme nasıl oluyor?

Programlama forumunda VB.NET'te karşılaştırmalı dosya silme nasıl oluyor? konusunu incelemektesiniz.

İstediğim bir klasörün içinde çok sayıda dosya var birde database'de bir sütunda birçok dosya adı var dizindeki dosyaların her birini database'deki dosya adlarıyla karşılaştırıp eğer burda adı yoksa silinmesini istiyorum ...

  1. #1
    Vatansever - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Aug 2007
    Mesajlar
    234

    Standart VB.NET'te karşılaştırmalı dosya silme nasıl oluyor?

    İstediğim bir klasörün içinde çok sayıda dosya var birde database'de bir sütunda birçok dosya adı var dizindeki dosyaların her birini database'deki dosya adlarıyla karşılaştırıp eğer burda adı yoksa silinmesini istiyorum

    Kod:
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim da = New OleDbDataAdapter
            Dim cmd As New OleDbCommand
            Dim dr As OleDbDataReader
            If (cn.State = ConnectionState.Closed) Then cn.Open()
            cmd = New OleDbCommand("Select resim from Kisiler ", cn)
            dr = cmd.ExecuteReader()
    
            Dim dizin As New IO.DirectoryInfo(Application.StartupPath & "\Resimler")
            If dizin.Exists = True Then
                Dim dizindekidosyalar As IO.FileInfo() = dizin.GetFiles("*.jpg")
                Dim dosyaadı As IO.FileInfo
    
                '******************************************************************
                For Each dosyaadı In dizindekidosyalar
                    '======================================
                    While dr.Read
    
                        If dosyaadı.ToString = dr(0).ToString Then
                            MsgBox(dosyaadı.ToString & " Bu dosya Var" & dr(0).ToString)
                        Else
                            MsgBox(dosyaadı.ToString & "  Bu Dosya Yok  " & dr(0).ToString)
                            ' File.Delete(Application.StartupPath & "\Resimler\" & dosyaadı.ToString)
                        End If
    
                    End While
                    '======================================
                Next
                '******************************************************************
    
                cn.Close()
            End If
        End Sub
    .MDB DOSYASINDA ADI BULUNMAYAN DOSYALARIN KLASÖRÜN İÇİNDEN SİLİMESİNİ İSTİYORUM
    kodu nasıl düzeltmem gerekli

  2. #2
    cgrszone - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Dec 2007
    Yaş
    24
    Mesajlar
    14.923

    Standart

    Kodu düzeltmekle uğraşamam ama ben olsam şöyle bir mantıkla olaya yaklaşırdım, ilk önce klasördeki dosyaların adlarını bir listeye alırdım, daha sonra MDB içinden kayıtları okuyup olanları listeden çıkartırdım, ardından da listede kalan dosyaları sildirirdim

  3. #3
    Vatansever - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Aug 2007
    Mesajlar
    234

    Standart

    Demesi kolayda denklemi kuramıyorum istediğin şey aşağıda dosyalistesi 'ne dosya adlarını doldurdum
    mdbisimlistesi 'nede MDB dosyasında yazan dosya adlarını doldurdum şimdi elde iki tane liste var
    Kod:
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim da = New OleDbDataAdapter
            Dim cmd As New OleDbCommand
            Dim dr As OleDbDataReader
            If (cn.State = ConnectionState.Closed) Then cn.Open()
            cmd = New OleDbCommand("Select resim from Kisiler ", cn)
            dr = cmd.ExecuteReader()
    
            Dim dizin As New IO.DirectoryInfo(Application.StartupPath & "\Resimler")
            If dizin.Exists = True Then
                Dim dizindekidosyalar As IO.FileInfo() = dizin.GetFiles("*.jpg")
                Dim dosyaadı As IO.FileInfo
                '******************************************************************
                '*************** İLGİLENECEĞİNİZ KODLAR AŞAĞIDAKİLERDİR *****************
                '******************** YUKARIDAKİLERE BAKMAYIN ************************
                '******************************************************************
    
                ' BURDA BİLGİLERİ LİSTEYE DOLDURDUM
                Dim dosyalistesi As New List(Of String)
                Dim mdbisimlistesi As New List(Of String)
    
                '******************************************************************
                For Each dosyaadı In dizindekidosyalar
                    dosyalistesi.Add(dosyaadı.ToString)
                Next
                '******************************************************************
                While dr.Read
                    mdbisimlistesi.Add(dr(0))
                End While
                '******************************************************************
                cn.Close()
            End If
        End Sub

  4. #4
    cgrszone - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Dec 2007
    Yaş
    24
    Mesajlar
    14.923

    Standart

    tamam işte
    dosyalistesi'ndeki her kaydı tek tek
    mdbisimlistesi'nin verileri ile tara olanları kaldır. ta ki tarama sırasında hiç bir veri çıkarılmayıp döngü sonlanana kadar. daha sonra da dosya listesindeki verileri diskten sildir...

  5. #5

    Üyelik tarihi
    Jul 2011
    Mesajlar
    48

    Standart

    Böyle birşey herhalde anlatmaya çalıştığınız
    Kod:
     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim da = New OleDbDataAdapter
            Dim cmd As New OleDbCommand
            Dim dr As OleDbDataReader
            Dim cn As OleDb.OleDbConnection = New  OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data  Source=C:\Temp\Database1.accdb")
            Dim Flag As Boolean = False
            If (cn.State = ConnectionState.Closed) Then cn.Open()
            cmd = New OleDbCommand("Select resim from Kisiler ", cn)
            dr = cmd.ExecuteReader()
            Dim dizin As New IO.DirectoryInfo("C:\Temp")
            If dizin.Exists = True Then
                Dim dizindekidosyalar As IO.FileInfo() = dizin.GetFiles("*.txt")
                Dim dosyaadı As IO.FileInfo
    
                '******************************************************************
                Dim FindData As String = ""
                For Each dosyaadı In dizindekidosyalar
                    '======================================
                    While dr.Read
                        FindData = dr.GetString(0).ToString
                        Flag = False
                        For Each File As IO.FileInfo In dizindekidosyalar
                            If LCase(File.FullName) = LCase(FindData) Then
                                Flag = True
                                Exit For
                            End If
                        Next
                        If Flag = True Then
                            MsgBox("Dosya bulundu...")
                             'İşlem gerçekleştir
                        Else
                            MsgBox("Dosya Bulunamadı")
                            'işlem gerçekleştir
                        End If
                    End While
                    '======================================
                Next
                '******************************************************************
    
                cn.Close()
            End If
        End Sub

Konu Bilgileri

Bu konuyu görüntüleyenler

Şu an 1 kullanıcı var. (0 üye ve 1 konuk)

Benzer Konular

  1. Dosya Silme
    Fantoma - forum Diğer Yazılım Konuları
    Cevaplar: 10
    Son Mesaj: 14-08-2010, 00:10
  2. Arkadaslar bu nasil oluyor yardim
    yazici77 - forum İnternet Haberleri
    Cevaplar: 12
    Son Mesaj: 27-04-2010, 23:50
  3. Bu sorunu nasıl aşabiliriz(dosya silme)
    engin_er - forum Windows 7
    Cevaplar: 7
    Son Mesaj: 15-09-2009, 17:29
  4. İki bilgisayardan bir birbirine dosya paylasimi nasil oluyor
    catli42 - forum Diğer Yazılım Konuları
    Cevaplar: 0
    Son Mesaj: 07-12-2008, 13:48
  5. Cevaplar: 0
    Son Mesaj: 07-12-2008, 13:48

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok
  •  

vBulletin Optimisation by vB Optimise.