对文件系统操作有疑问:在我们执行程序的不同目录中打开文件。
让我们说我们在以下目录中执行我们的程序:/ home / example我们希望程序转到另一个目录,例如:home / example / Inside / Test并打开最后一个目录中的所有txt文件。
好的小代码:
/*variables*/
struct dirent *strdir;
DIR *diro;
struct stat statbuffer;
char *path = /home/example/Inside/test
diro = opendir( path )
/*cheked it opened properly*/
while ( (strdir = readdir(diro)) != NULL ){
stat(strdir->d_name, &statbuffer); /*Gets information of file*/
if (S_ISREG(statbuffer.st_mode)){
/*its regular type*/
/*check its of type txt*/
???
我放???
因为我使用了fopen,但它不起作用。当然不会,因为/ home / example中不存在该文件。同样适合开放。
所以我想,也许我可以将目录和文件名连接成一个字符串来获取完整路径,但这听起来有点难看......
另一个想法是使用stat给我的信息,但我似乎无法弄清楚如何使它工作。硬链接?
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您不想将目录名放在路径上(这可能是正确的事情),请致电chdir("/home/example/Inside/Test");