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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  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 3,933 veces)
SrTrp


Desconectado Desconectado

Mensajes: 325


Script/C#


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

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: 455


Coder | Reverser | Gamer


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

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 am 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.809



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

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 am 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
Programación Visual Basic
erick185 1 1,355 Último mensaje 11 Marzo 2006, 15:29 pm
por karmany
copiar archivo
Programación Visual Basic
Tyrz 4 2,103 Último mensaje 26 Diciembre 2006, 11:57 am
por Tyrz
copiar archivo
Scripting
pastillas 1 2,257 Último mensaje 4 Abril 2008, 06:13 am
por [SMT]
¿como enviar un archivo especifico(troyano) como una actualizacion java?
Hacking
thedevilini 5 5,755 Último mensaje 25 Noviembre 2011, 08:44 am
por adastra
El sistema no puede encontrar el archivo especifico
Programación C/C++
ascuasflame 0 1,588 Último mensaje 9 Enero 2018, 00:25 am
por ascuasflame
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines