none
como hacer un bucle? RRS feed

  • Pregunta

  • hola buen día amigos tengo una duda  a partir de este código quiero crear un ciclo el cual me permita eliminar archivos, este es el código para poder hacer copias de seguridad pero eso ya lo hace y lo almacena en una carpeta. ahora quiero un ciclo el cual me permita borrar las copias de seguridad por ejemplo, diario se creara una copia de seguridad de lunes a domingo, pero, cuando llegue al día domingo esta carpeta donde se alojan las copias de seguridad se tiene que dar mantenimiento borrando todas las copias de seguridad excepto la del día domingo es la única que me tiene que guardar. como podría hacer el ciclo a partir de este código.

    seria de gran ayuda su aportación.

    Public Class Form1
        Private archivos As String()
        Dim conexion As New sqlconnection("server=alo;database=bdinsignias;uid=sa;pwd=13hjgtt56kn7jhtg9")
        Dim information As System.IO.FileInfo


        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim nombre_copias As String = (Date.Today.Day.ToString & "_" & Date.Today.Month.ToString & "_" & Date.Today.Year.ToString & "_" & "backup")
            Dim consulta As String = ("BACKUP DATABASE [BdInsignias] TO DISK = N'U:\backup\ " & nombre_copias & ".bak' WITH NOFORMAT, NOINIT, NAME = N'DBiNSIGNIAS-COMPLETA BASE DE DATOS COPIA DE SEGURIDAD', SKIP,NOREWIND, NOUNLOAD STATS = 10")
            Dim CMD As sqlcommand = New sqlcommand(consulta, conexion)
            conexion.open()
            Try
                CMD.executeNonQuery()

            Catch ex As Exception
                MsgBox("no se realizo correctamente")
            End Try
            conexion.close()

            Dim di As New DirectoryInfo("ruta")

            Dim ficheros as fileinfo()= di.GetFiles(*.bak)

            Dim Files as IEnumerble(of FileSystemInfo) = di.EnumerateFileSystemInfos().Order BY(Function(fi) fi.CreationTime)

            For each fi As FileInfo In Ficheros

            Next
        End Sub
    End Class

    lunes, 10 de julio de 2017 14:51

Todas las respuestas

  • Crea un hilo que se ejecute cada cierto tiempo 
    lunes, 10 de julio de 2017 14:53
  • y como podria hacer eso?
    lunes, 10 de julio de 2017 14:56
  • http://www.albahari.com/threading/part3.aspx
    lunes, 10 de julio de 2017 15:01
  •     Public Sub DeleteAFile(ByVal EspecArch)
            Dim fso
            On Error Resume Next
            fso = CreateObject("Scripting.FileSystemObject")
            fso.deletefile(EspecArch)
        End Sub

        Sub EliminaArchivos()
            DeleteAFile("UBICACION" + ".bak")
        End Sub

    Prueba primero si esto te permite borrar luego te ayudo con el hilo

    lunes, 10 de julio de 2017 15:11
  • no me ha dejado borrar. 
    lunes, 10 de julio de 2017 15:25
  • Hola:

     Me parece haber visto esta pregunta mas de una vez, en mi ultima respuesta te sugerí que usaras el System.IO.Directory.GetFiles y haste te prepare un ejemplo:

    using System.Linq;
    
    DirectoryInfo info = new DirectoryInfo("PathDeArchivos");
    FileInfo[] files = info.GetFiles().Where(x => x.CreationTime.Date < Datetime.Today).OrderBy(p => p.CreationTime).ToArray();
    foreach (FileInfo file in files)
    {
        File.Delete(string.Format("{0}/{1}", directory, file));
    }
     Dime probaste lo que te en ese momento te sugerí?


    Saludos desde Monterrey, Nuevo León, México!!!

    • Propuesto como respuesta Pedro Ávila lunes, 17 de julio de 2017 1:41
    lunes, 10 de julio de 2017 16:08
  • SI PERO NO ME QUEDO
    lunes, 10 de julio de 2017 16:23
  • Hola.

     Recuerda que decir "no me quedo" no ayuda en nada, debes de mencionar que sucedió, si te genero un error mostrarnos el mensaje y la linea de código que la genero, darnos mas detalles para podernos hacer una idea de que es lo que esta ocurriendo de lo contrario podrías crear mil preguntas y no hallaremos la solución.


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 10 de julio de 2017 16:35
  • SE SUPONE QUE X Y P SON VARIABLES? Y SI LO SON DE DONDE LA TOMO PARA COMPARAR? ESO ES LO QUE NO ME QQUEDO CLARO EN TU EJEMPLO, HE INTENTADO PERO AUN NO ENCUENTRO COMO HACER ESTE EJEMPLO



    lunes, 10 de julio de 2017 16:44
  • Hola:

     x y p son parte de una expresión de Linq, puedes llamarle como gustes, ahora el ejemplo que te proporciono lo implementaste?, si lo implementaste te habrás dado cuenta el el intelligesense de visual studio te pidió agregar la referencia a System.Linq, es todo lo que necesitas. Trata de implementar lo que te sugiero y nos comentas tus resultados.

    Nota: En ambientes informáticos, escribir en Mayúsculas equivale a gritar, no se si te has sentido ofendido de algún modo, si es así, nunca ha sido esa mi intención.


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 10 de julio de 2017 16:58
  • no para descuida no ntp. y pues no se por que no me queda solo me falta eliminar los archivos por ya los acomode el codigo que te muestro arriba es todo lo que tengo
    lunes, 10 de julio de 2017 18:21