C/Visual C - copia y muestra de archivos

 
Vista:

copia y muestra de archivos

Publicado por Diego (20 intervenciones) el 23/10/2001 16:51:37
como hago para copiar archivos desde una diskettera al riguido en un determinado directorios sin usar el system(\"copy a: c:\\yo\" de otra forma
y otra cosa como puedo visualizar lo que tengo en un diskette como si fuera el explordor de windows, todo esto lo nesecito en c++ para D.O.S
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Copia de archivos desde disquetera y listado de archivos en DOS

Publicado por Alejandro (913 intervenciones) el 17/10/2024 18:07:33
Diego, para copiar archivos desde una disquetera a un disco rígido en C++ para DOS sin usar el comando `system("copy ...")`, puedes utilizar las funciones de la API de Windows o las funciones estándar de C/C++. Aquí te muestro cómo hacerlo utilizando funciones estándar de C++.

Copiar archivos



Puedes usar las funciones `fopen`, `fread`, `fwrite` y `fclose` para copiar archivos. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cstdio>
#include <cstring>
 
void copiarArchivo(const char* origen, const char* destino) {
    FILE* archivoOrigen = fopen(origen, "rb");
    if (archivoOrigen == nullptr) {
        std::cerr << "Error al abrir el archivo de origen." << std::endl;
        return;
    }
 
    FILE* archivoDestino = fopen(destino, "wb");
    if (archivoDestino == nullptr) {
        std::cerr << "Error al abrir el archivo de destino." << std::endl;
        fclose(archivoOrigen);
        return;
    }
 
    char buffer[1024];
    size_t bytesLeidos;
 
    while ((bytesLeidos = fread(buffer, 1, sizeof(buffer), archivoOrigen)) > 0) {
        fwrite(buffer, 1, bytesLeidos, archivoDestino);
    }
 
    fclose(archivoOrigen);
    fclose(archivoDestino);
}
 
int main() {
    copiarArchivo("A:\\miArchivo.txt", "C:\\miDirectorio\\miArchivo.txt");
    return 0;
}

Visualizar archivos en una disquetera



Para visualizar los archivos en una disquetera como si fuera el Explorador de Windows, puedes listar los archivos en un directorio utilizando la función `findfirst` y `findnext`. Aquí tienes un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <dir.h>
 
void listarArchivos(const char* ruta) {
    struct ffblk archivo;
    int resultado = findfirst(ruta, &archivo, 0);
 
    while (resultado == 0) {
        std::cout << archivo.ff_name << std::endl;
        resultado = findnext(&archivo);
    }
}
 
int main() {
    listarArchivos("A:\\*.*"); // Listar todos los archivos en la disquetera
    return 0;
}

Notas:


- Asegúrate de que la disquetera esté conectada y que los archivos existan.
- Cambia los nombres de los archivos y directorios según sea necesario.
- Este código está diseñado para ser ejecutado en un entorno DOS, así que asegúrate de compilarlo con un compilador compatible con DOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar