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...
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()...
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.
Código (csharp) [Seleccionar]
// Source file.
FileInfo srcFile = new FileInfo(@"C:\Archivo.ext");
// Destination directory.
DirectoryInfo dstDir = new DirectoryInfo(@"C:\Directorio\");
// Destination file.
FileInfo dstFile = new FileInfo(Path.Combine(dstDir.FullName, srcFile.Name));
try {
dstDir.Create();
srcFile.CopyTo(dstFile.FullName);
} catch (Exception ex) {
throw;
}
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 (csharp) [Seleccionar]
// Source file path.
string srcFilePath = @"C:\Archivo.ext";
// Destination directory path.
string dstDirPath = @"C:\Directorio\";
// Destination file path.
string dstFilePath = Path.Combine(dstDirPath, Path.GetFileName(srcFilePath));
try {
Directory.CreateDirectory(dstDirPath);
File.Copy(srcFilePath, dstFilePath, overwrite:false);
} catch (Exception ex) {
throw;
}
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.