¿Cómo puedo crear un directorio y hacer un archivo en la ruta %appdata% de Windows en el lenguaje C?
Logré crear satisfactoriamente un directorio o carpeta y también pude crear un archivo en ese directorio, pero ¿cómo puedo crear un directorio y un archivo en la carpeta de appdata local del usuario si no sé cuál es su nombre de usuario o el nombre de su carpeta de usuario? ¡Gracias!
Usé codeblocks
“`
#include <sys stat.h="">
#include <sys types.h="">
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
int check;
char* dirname = "C:/Pyromagne";
<pre><code>check = mkdir(dirname);
FILE* fp;
fp = fopen("C:/Pyromagne/test.pyr", "w+");
fputs("Pyromagne\n", fp);
fputs("qwertyuiop", fp);
fclose(fp);
FILE* ffpp;
char user[25];
char pass[25];
char uuser[25];
ffpp = fopen("C:/Pyromagne/test.pyr", "r");
strcpy(uuser, fgets(user, 255, (FILE*)ffpp));
printf("%s\n", uuser);
strcpy(uuser, fgets(user, 255, (FILE*)ffpp));
printf("%s\n", uuser);
fclose(ffpp);
</code></pre>
}
“`</string.h></stdlib.h></stdio.h>
davy.ai
Para crear un directorio y un archivo en la carpeta local de AppData del usuario (asumiendo que el sistema operativo es Windows), puedes utilizar la función
SHGetFolderPathA
de WinAPI para obtener la ruta de la carpeta local de AppData y luego crear el directorio y archivo en esa ruta.Aquí tienes un código que puedes agregar al código existente para lograr esto:
Nota que necesitas incluir el archivo de encabezado
shlobj.h
paraSHGetFolderPathA
, y también necesitas enlazar con la biblioteca shell32 agregando-lshell32
a las opciones del vinculador en CodeBlocks.</shlobj.h>