elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  C# copiar archivo en especifico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C# copiar archivo en especifico  (Leído 774 veces)
SrTrp

Desconectado Desconectado

Mensajes: 265


Script/C#


Ver Perfil
C# copiar archivo en especifico
« en: 7 Marzo 2019, 02:52 »

Necesito copiar 1 archivo en especifico yo lo selecciono y obtengo la ruta de el así c:\escritorio\carpeta\archivo.doc
pero eh estado intentando de copiarlo algo así
Código
  1.  
  2. string nombrecar = "C:\\carpeta\otracar\guardaaqui";//guardaaqui es la carpeta que creara
  3.  
  4.            if (!(Directory.Exists(nombrecar)))
  5.            {
  6.                Directory.CreateDirectory(nombrecar);
  7.                FileInfo file = new FileInfo(c:\escritorio\carpeta\archivo.doc);
  8.                file.CopyTo(nombrecar + "\\" + "archivo.doc");
  9.            }
solo crea la carpeta el archivo no lo copea


En línea

ThunderCls


Desconectado Desconectado

Mensajes: 432


Coder | Reverser | Gamer


Ver Perfil WWW
Re: C# copiar archivo en especifico
« Respuesta #1 en: 7 Marzo 2019, 04:12 »

No se si sera un typo cuando copiaste el codigo pero en esta linea:

Código
  1. FileInfo file = new FileInfo(c:\escritorio\carpeta\archivo.doc);

La ruta del fichero es una cadena asi que necesitas usar ""

Código
  1. FileInfo file = new FileInfo(@"c:\escritorio\carpeta\archivo.doc");

Edit:
1- Olvide mencionar que en tu logica si existe la carpeta con anterioridad no se copiaria el fichero. Si no es el comportamiento que deseas necesitas modificar tus {}
2- Cuando trabajes con ficheros es siempre recomendable usar un manejador de excepciones


Código
  1.            string nombrecar = @"c:\carpeta\otracar\guardaaqui";
  2.            string nombrearchivo = @"c:\escritorio\carpeta\archivo.doc";
  3.  
  4.            try
  5.            {
  6.        if (!(Directory.Exists(nombrecar)))
  7.            Directory.CreateDirectory(nombrecar);
  8.  
  9.                FileInfo file = new FileInfo(nombrearchivo);
  10.                if (file.Exists)
  11.            file.CopyTo(nombrecar + "\\" + file.Name, true);
  12.            }
  13.            catch
  14.                MessageBox.Show("Error copiando fichero!");


« Última modificación: 7 Marzo 2019, 04:28 por ThunderCls » En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: C# copiar archivo en especifico
« Respuesta #2 en: 7 Marzo 2019, 10:44 »

No es necesario usar la clase FileInfo a menos que quieras representar la información de un archivo en la interfaz gráfica, o acceder a dicha información para otros usos, en cuyo caso también sería conveniente usar la clase DirectoryInfo en vez de mezclar declaraciones de tipo string con instancias de la clase FileInfo...

Código
  1. // Source file.
  2. FileInfo srcFile = new FileInfo(@"C:\Archivo.ext");
  3.  
  4. // Destination directory.
  5. DirectoryInfo dstDir = new DirectoryInfo(@"C:\Directorio\");
  6.  
  7. // Destination file.
  8. FileInfo dstFile = new FileInfo(Path.Combine(dstDir.FullName, srcFile.Name));
  9.  
  10. try {
  11. dstDir.Create();
  12. srcFile.CopyTo(dstFile.FullName);
  13.  
  14. } catch (Exception ex) {
  15. throw;
  16.  
  17. }

Si por lo contrario tu única intención es usar el método FileInfo.CopyTo(), crear una instancia de la clase FileInfo como ya dije es completamente inadecuado e innecesario. En su lugar puedes usar el método System.IO.File.Copy()...

Código
  1. // Source file path.
  2. string srcFilePath = @"C:\Archivo.ext";
  3.  
  4. // Destination directory path.
  5. string dstDirPath = @"C:\Directorio\";
  6.  
  7. // Destination file path.
  8. string dstFilePath = Path.Combine(dstDirPath, Path.GetFileName(srcFilePath));
  9.  
  10. try {
  11. Directory.CreateDirectory(dstDirPath);
  12. File.Copy(srcFilePath, dstFilePath, overwrite:false);
  13.  
  14. } catch (Exception ex) {
  15. throw;
  16.  
  17. }

Nótese que no es necesario comprobar si el directorio existe o no, de eso ya se encarga el método DirectoryInfo.Create() o Directory.CreateDirectory(), los cuales no lanzarán ninguna excepción si el directorio ya fue creado con anterioridad.

Saludos.
« Última modificación: 7 Marzo 2019, 10:50 por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
copiar archivo
Scripting
pastillas 1 1,397 Último mensaje 4 Abril 2008, 06:13
por [SMT]
¿como enviar un archivo especifico(troyano) como una actualizacion java?
Hacking Básico
thedevilini 5 3,971 Último mensaje 25 Noviembre 2011, 08:44
por adastra
Bat copiar archivo en red.
Scripting
m4st3rcr4zy 2 6,025 Último mensaje 30 Diciembre 2011, 00:09
por m4st3rcr4zy
copiar archivo
PHP
kakashi20 1 982 Último mensaje 3 Diciembre 2012, 23:35
por #!drvy
El sistema no puede encontrar el archivo especifico
Programación C/C++
ascuasflame 0 516 Último mensaje 9 Enero 2018, 00:25
por ascuasflame
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines