Hola muy buenas. He estado buscando por la web algún tutorial de manejo de carpetas en C pero no encontré nada. Si alguien conoce de página me sería de gran ayuda.
Cita de: Shevy en 14 Enero 2014, 19:55 PM
Hola muy buenas. He estado buscando por la web algún tutorial de manejo de carpetas en C pero no encontré nada. Si alguien conoce de página me sería de gran ayuda.
Si es para Windows: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363950(v=vs.85).aspx
Cita de: Shevy en 14 Enero 2014, 19:55 PM
Hola muy buenas. He estado buscando por la web algún tutorial de manejo de carpetas en C pero no encontré nada. Si alguien conoce de página me sería de gran ayuda.
Una simple opción es usar el system con dir y sus acólitos.
Por ejemplo si quieres ver el contenido de la carpeta C bastaría:
system ("dir c:\\");
+1 system. :-X vaya que no le guste :silbar:
Doy por hecho que usas C++.
Función que lista directorios en Windows:
void listarDirectorio(std::string Cosa)
{
// Variables del sistema
WIN32_FIND_DATA findFileData;
HANDLE hFind;
// Variable auxiliar
std::string Buffer;
// Iniciamos la busqueda y le pasamos un valor a nuestro Handle
hFind = FindFirstFile(Cosa.c_str(), &findFileData);
// Si no existe la carpeta
if (hFind == INVALID_HANDLE_VALUE)
{
std::cout << "La carpeta no existe o no se puede acceder";
}
else
{
// Si existe, pasamos al siguiente fichero (el primero solo contiene basura)
FindNextFile(hFind, &findFileData);
// Listamos todos los ficheros restantes
while (FindNextFile(hFind, &findFileData) != 0)
{
Buffer = Cosa; // Creamos una variable de nombre con el valor del directorio
Buffer.erase(Buffer.size()-1); // Borramos el asterisco
Buffer += findFileData.cFileName;
if (GetFileAttributes(Buffer.c_str()) == FILE_ATTRIBUTE_DIRECTORY)
{
Buffer += "\\*";
listarDirectorio(Buffer);
}
else
{
std::cout<<Buffer<<endl;
}
}
}
}
Es importante que le pases a la función la ruta "*" para que te marque la carpeta actual.