C打开一个文件以便在另一个目录中读取

时间:2012-06-15 00:52:00

标签: c file directory

对文件系统操作有疑问:在我们执行程序的不同目录中打开文件。

让我们说我们在以下目录中执行我们的程序:/ 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给我的信息,但我似乎无法弄清楚如何使它工作。硬链接?

2 个答案:

答案 0 :(得分:0)

看来你为这个函数指定的参数必须是一个字符串。

    opendir( /home/example/Inside/Test )

请参阅此问题Open directory using C

答案 1 :(得分:0)

如果您不想将目录名放在路径上(这可能是正确的事情),请致电chdir("/home/example/Inside/Test");