У меня возникают проблемы, чтобы манипулировать каталоги в C.C манипулировать каталоги: как расположить в директории, давая свое имя в главных аргументах
- Я хочу дать название 2-каталогов в качестве аргумента на основном
- проверить, если первый каталог существует (в текущем пути)
- открыть каталог
- вызова функции (что я создал) для создания файлов и делать вещи внутри исходного каталог
- закройте каталог и перейдите во второй каталог и выполните то же самое.
Я написал свой код, но он все еще не делает вещи в каталогах, которые я дал на main, вместо этого он выглядит так, что я всегда позиционируется в текущем каталоге, так что вызов открыть каталог не хорош ???
Вот что я сделал:
int main(int argc, char *argv[])
{
int i = 0;
char cwd[1024];
if(argc < 3)
{
printf("Erreur dans les arguments\n");
} else
{
for(i = 1; i < argc; i++)
{
if (getcwd(cwd, sizeof(cwd)) == NULL)
{
printf("an error occured when getting current directory\n");
}
// make a path to the directory
strcat(cwd, "/");
strcat(cwd, argv[i]);
strcat(cwd, "/");
printf("cwd %s\n", cwd);
//check if directory exist and readable
//if((rep = opendir(argv[i])) != NULL) not working also
if((rep = opendir(cwd)) != NULL)
{
getcwd(cwd, sizeof(cwd));
printf("cwd %s\n", cwd);
// do some stuff on the directory
//int result = createFile("file.txt"); // this function works fine but the file is always created in the current directory
}
}
}
}
если кто-то может помочь, это будет понятно. Спасибо.
@chux Нет декларации не видно в этом коде. – ameyCU
@chux и ameyCU жаль, ребята, это часть большой программы, которую я сделал, и я не хотел ставить всю программу здесь, поэтому я забыл о букете, мне очень жаль. Я редактировал вопрос. – cbInfo009
Вам нужно только один раз вызвать 'getcwd()', если вы не используете 'chdir()' для изменения каталога. Вам не нужно префиксное значение из 'getcwd()'; вы можете использовать '.' для обозначения текущего каталога. Или вы можете просто использовать имя без изменений; пользователь может ввести абсолютное имя (начиная с '/') или относительное имя (не начиная с '/') по своему усмотрению. Это дает лучшую гибкость. –