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í
 string nombrecar = "C:\\carpeta\otracar\guardaaqui";//guardaaqui es la carpeta que creara
            if (!(Directory.Exists(nombrecar)))
            {
                Directory.CreateDirectory(nombrecar);
                FileInfo file = new FileInfo(c:\escritorio\carpeta\archivo.doc);
                file.CopyTo(nombrecar + "\\" + "archivo.doc");
            }
solo crea la carpeta el archivo no lo copea
			
			
			
				No se si sera un typo cuando copiaste el codigo pero en esta linea:
FileInfo file = new FileInfo(c:\escritorio\carpeta\archivo.doc);
La ruta del fichero es una cadena asi que necesitas usar ""
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
            string nombrecar = @"c:\carpeta\otracar\guardaaqui";
            string nombrearchivo = @"c:\escritorio\carpeta\archivo.doc";
            try
            {
	        if (!(Directory.Exists(nombrecar)))
	            Directory.CreateDirectory(nombrecar);
                FileInfo file = new FileInfo(nombrearchivo);
                if (file.Exists)
	            file.CopyTo(nombrecar + "\\" + file.Name, true);
            }
            catch
                MessageBox.Show("Error copiando fichero!");
			
			
			
				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...
// 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()...
// 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.