ファイルの存在確認

任意のファイルが存在するかしないかを判定するには、
リードモードでファイルを開きエラーなら存在しない、とすればいい。

その他に、ファイルが存在するかを調べるための関数を使用する方法もある。
ファイルが存在するかを調べる
1.
2.
#include <io.h>
int access(const char *pathname, int mode)
第2引数に0を指定すれば存在確認に使うことができる。
戻り値が0なら存在する、非0なら存在しない。

サンプル
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
#include stdio.h>
#include <io.h>

#define FILENAME "access.txt"

int main(void)
{
        FILE *fp;

        // とりあえず、ファイルを削除
        printf("remove file\n");
        if( remove(FILENAME) != 0 )
        perror("remove");

        // ファイル有無の確認
        if( access(FILENAME,00) == 0)
        {
        printf(FILENAME" is exist\n");
        }
        else
        {
        perror("access1");
        }

        // ファイルを作成
        printf("make file\n");
        if( (fp = fopen(FILENAME,"w")) == NULL )
        {
        perror("fopen");
        }
        fclose(fp);

        // ファイル有無の確認
        if( access(FILENAME,00) == 0)
        {
        printf(FILENAME" is exist\n");
        }
        else
        {
        perror("access2");
        }

        {
        char c;
        c = getchar();
        }
        return 0;
}

0 件のコメント:

コメントを投稿