0
C程序是否有權查看某個目錄中的文件並與它們進行交互?例如,假設我通過system()函數使用wget下載了一個文件,並且我想查看該文件的名稱是什麼。有沒有什麼辦法可以通過標準的C庫或POSIX庫來實現?使用標準C庫或POSIX庫掃描UNIX目錄中的文件
C程序是否有權查看某個目錄中的文件並與它們進行交互?例如,假設我通過system()函數使用wget下載了一個文件,並且我想查看該文件的名稱是什麼。有沒有什麼辦法可以通過標準的C庫或POSIX庫來實現?使用標準C庫或POSIX庫掃描UNIX目錄中的文件
這會查找修改時間少於5秒前目錄中的文件 - 沒有錯誤檢查。
#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
#include <time.h>
#include <dirent.h>
void dirchk(const char *arg) // arg=name of directory
{
time_t when = time(NULL) -5; // 5 secs ago
struct stat st;
DIR *dirp=opendir(arg);
struct dirent *d=readdir(dirp);
while (d != NULL)
{
if ((d = readdir(dirp)) != NULL)
{
stat(d->d_name, &st);
if(when - st.st_mtime <=5)
printf("%s\n", d->d_name);
}
}
closedir(dirp);
return;
}
int main()
{
dirchk(".");
return 0;
}
「。」是當前的工作目錄。
謝謝你的回答,我將讀到dirent.h和time()函數。 – dsplayer14
C標準庫沒有文件系統的概念,所以沒有。在Posix中,使用''。 –
兩個標準函數是[stat()](http://linux.die.net/man/3/stat)和[readdir()](http://linux.die.net/man/3/readdir) 。 – paulsm4
問題是,當你看到它時你將如何識別該文件?恕我直言,最好使用網絡庫,如libcurl(http://curl.haxx.se/libcurl/)將URL下載到您選擇的文件名中。 – rici