可能重複:
What’s the best way to check if a file exists in C? (cross platform)C,檢查文件是否存在而不能讀/寫可能?
我想檢查文件是否存在。我將我的測試文件的權限更改爲「chmod -r somefile」。但是現在它說文件即使存在也不存在。
因此,我假設如果我沒有讀取權限,我無法打開與「fopen r」文件。但是這意味着沒有簡單的方法可以判斷文件是否存在或者無法讀取/寫入?
或者我錯過了什麼?任何幫助都會很棒。
謝謝!
int doesFileExist(const char* filename)
{
FILE* fptr = fopen(filename, "r");
if (fptr != NULL)
{
fclose(fptr);
printf("File exists\n");
return 1;
}
printf("File doesnt exist\n");
return 0;
}
更新:謝謝你們這些偉大的鏈接和解釋!
呃..你有沒有檢查過'errno'?編輯:試試這個得到一些錯誤信息:'printf(「文件不存在:%s \ n」,strerror(errno));'不要忘記包含'errno.h'頭文件。 – Jack
這就是我討厭stdio API的原因,無論何時你需要做一些不平凡的事情如調整文件大小,或者移動文件而不復制它並刪除舊文件,在可移植性方面你都會走運。 – Thomas