none
c# calendario RRS feed

  • Pregunta

  • hola, mi programa esta hecho en c# este copia datos de una carpeta a otra, los archivos estan por fechas del 2016 hasta el 2018 y quiero que con el  datepicker que tengo pueda ser capaz de decir cuales archivos deceo copiar 
    miércoles, 14 de febrero de 2018 15:21

Respuestas

  • Utiliza la clase DirectoryInfo (en system.IO) para que te devuelva la lista de todos los FileInfo de la carpeta deseada. Los recorres con un bucle, y por cada FileInfo tienes una propiedad que te devuelve la fecha. La comparas con el .Value del DataPicker y si cumple el criterio deseado, copias el fichero usando System.IO.File.Copy.

    • Propuesto como respuesta Pablo RubioModerator miércoles, 14 de febrero de 2018 17:16
    • Marcado como respuesta aaguirre03 miércoles, 14 de febrero de 2018 18:31
    • Desmarcado como respuesta aaguirre03 miércoles, 14 de febrero de 2018 18:31
    • Marcado como respuesta Pablo RubioModerator lunes, 19 de febrero de 2018 14:56
    miércoles, 14 de febrero de 2018 16:43
  • hola

    >>quiero que con el  datepicker que tengo pueda ser capaz de decir cuales archivos deceo copiar

    no existe un datetimepicker en asp.net, salvo que uses jquery

     Use JQuery Datepicker In ASP.NET Web Form

    si defines dos tendrias un rago de fechas, despues solo seria cuestion de aplicar un filtro

    si te animas podrias usar linq

     Filtrar por Fechas LINQ

    como veras si usas el Directoty.GetFiles() y el FileInfo podrias aplicar un filtro por fechas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 14 de febrero de 2018 16:40

Todas las respuestas

  • hola

    >>quiero que con el  datepicker que tengo pueda ser capaz de decir cuales archivos deceo copiar

    no existe un datetimepicker en asp.net, salvo que uses jquery

     Use JQuery Datepicker In ASP.NET Web Form

    si defines dos tendrias un rago de fechas, despues solo seria cuestion de aplicar un filtro

    si te animas podrias usar linq

     Filtrar por Fechas LINQ

    como veras si usas el Directoty.GetFiles() y el FileInfo podrias aplicar un filtro por fechas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 14 de febrero de 2018 16:40
  • Utiliza la clase DirectoryInfo (en system.IO) para que te devuelva la lista de todos los FileInfo de la carpeta deseada. Los recorres con un bucle, y por cada FileInfo tienes una propiedad que te devuelve la fecha. La comparas con el .Value del DataPicker y si cumple el criterio deseado, copias el fichero usando System.IO.File.Copy.

    • Propuesto como respuesta Pablo RubioModerator miércoles, 14 de febrero de 2018 17:16
    • Marcado como respuesta aaguirre03 miércoles, 14 de febrero de 2018 18:31
    • Desmarcado como respuesta aaguirre03 miércoles, 14 de febrero de 2018 18:31
    • Marcado como respuesta Pablo RubioModerator lunes, 19 de febrero de 2018 14:56
    miércoles, 14 de febrero de 2018 16:43
  • hola

    >>quiero que con el  datepicker que tengo pueda ser capaz de decir cuales archivos deceo copiar

    no existe un datetimepicker en asp.net, salvo que uses jquery

     Use JQuery Datepicker In ASP.NET Web Form

    si defines dos tendrias un rago de fechas, despues solo seria cuestion de aplicar un filtro

    si te animas podrias usar linq

     Filtrar por Fechas LINQ

    como veras si usas el Directoty.GetFiles() y el FileInfo podrias aplicar un filtro por fechas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    hola buenas tardes, pero yo estoy programando en c# no me he metido nada con base de datos , los archivos los tomo de dos destinos diferentes y los ccopio para no afectar el original

    ana

    miércoles, 14 de febrero de 2018 18:14
  • Utiliza la clase DirectoryInfo (en system.IO) para que te devuelva la lista de todos los FileInfo de la carpeta deseada. Los recorres con un bucle, y por cada FileInfo tienes una propiedad que te devuelve la fecha. La comparas con el .Value del DataPicker y si cumple el criterio deseado, copias el fichero usando System.IO.File.Copy.

    hola buenas tardes, si copio los archivos presisamnete para no afectar al original, yambien utilizo file info y el diretori para ver el diretorio origen y destino ...... -No te comprendo bien  podrias explicarme merjo porfavor 

    ana

    miércoles, 14 de febrero de 2018 18:15
  • si copio los archivos presisamnete para no afectar al original, yambien utilizo file info y el diretori para ver el diretorio origen y destino ......
    Pues entonces ya lo tienes prácticamente hecho. Lo único que te falta es añadir un "if" que compare la fecha del FileInfo dentro del bucle donde estás copiando los archivos. Si no lo ves claro, ponnos aquí el bucle que tienes hecho copiando con los FileInfo, y te indicamos dónde añadir el "if".
    miércoles, 14 de febrero de 2018 19:15
  • [...] pero yo estoy programando en c# no me he metido nada con base de datos

    No hace falta base de datos. El LINQ al que se refiere Leandro es Linq-to-Objects (NO Linq-to-Sql)), y se aplica directamente sobre una colección de objetos, tal como la que te devuelve DirectoryInfo.GetFiles:

    DirectoryInfo di = new DirectoryInfo(...);
    var ficherosACopiar = from f in di where f.LastWriteTime>dateTimePicker1.Value select f;
    foreach (var f in ficherosACopiar) File.Copy(f.FullName, destino);
    

    miércoles, 14 de febrero de 2018 19:23
  • Utiliza la clase DirectoryInfo (en system.IO) para que te devuelva la lista de todos los FileInfo de la carpeta deseada. Los recorres con un bucle, y por cada FileInfo tienes una propiedad que te devuelve la fecha. La comparas con el .Value del DataPicker y si cumple el criterio deseado, copias el fichero usando System.IO.File.Copy.

    hola buenas tardes, si copio los archivos presisamnete para no afectar al original, yambien utilizo file info y el diretori para ver el diretorio origen y destino ...... -No te comprendo bien  podrias explicarme merjo porfavor 

    ana

       private void Copiar(string origen, string dest)
            {           
                string[] files_ali = Directory.GetFiles(origen); // Obtiene la lista de archivos de la ruta seleccionada y los guarda en el arreglo

                try
                {
                    for (int i = 0; i < files_ali.Length; i++)
                    {
                        string nombre_ali = Path.GetFileName(files_ali[i]);

                        var chars= nombre_ali.ToCharArray();
                        string numero = chars[0].ToString()+ chars[1].ToString()+ chars[2].ToString()+ chars[3].ToString();


                        int x= Int32.Parse(numero); // x es el año los archivos el nombre de los archivos .dat está formado por la fecha yyyymmdd 
                        if (x >=2018)
                        {                   
                            if (!(File.Exists(dest + nombre_ali)))
                            {
                                File.Copy(origen + "\\" + nombre_ali, dest + nombre_ali);
                                string datos = Leer(dest + Path.GetFileName(files_ali[i]));
                                fecha_ali(datos);
                            }
                        }
                        else
                        {
                            String currentFile = Actual(origen);
                            string Fecha = DateTime.Now.ToString(("yyyy/MM/dd H:mm:ss") + "\n");

                            if (currentFile.Equals(Fecha))
                            {
                                File.Copy(origen + "\\" + nombre_ali, dest + nombre_ali, true);
                                String filePathDest = dest + currentFile;
                                string datos = Leer(dest + Path.GetFileName(files_ali[i]));
                                fecha_ali(datos);
                            }
                            else
                            {
                                richTextBox1.AppendText("Archivo de hoy no encontrado" +i+ "\n");
                            }
                        } 
                    }                                              
                }

                catch (Exception e)
                {
                    richTextBox1.AppendText("Error al procesar archivos:  ERROR AL COPIAR ARCHIVOS \n " + DateTime.Now.ToString("yyyy/MM/dd H:mm:ss") + "\n");
                }                        
            }

    Este es mi codigo para copiar archivos tengo un texbox que burca la ruta de origen y la de destino 

    

                        

    ana

    jueves, 15 de febrero de 2018 2:52