C言語入門講座。関数、サンプル集を参考にして、 C言語をマスターしよう。初心者から上級者まで。

ファイルやフォルダを削除する

2012.08.10

remove関数は、ファイルやフォルダ(ディレクトリ)を削除します。この関数で削除するには、他のプロセスでファイルやフォルダを使用していないことや、削除する為の権限を持っていることなどがあります。また、フォルダは空でないと削除できません。

#include <stdio.h>
int remove(const char *pathname);

*pathnamesは削除するファイルやフォルダのパス名を指定します。

戻り値として、削除できた場合は0を、エラーの場合は-1を返します。

プログラム 例

#include <stdio.h>

int main(int argc, char **argv)
{
  char    ans;
  int     return_code = 0;

  if (argc == 2) {
    printf('%sを削除しますか?(y/n)==> ', *(argv + 1));
    scanf('%c', &ans);
    if (ans == 'Y' || ans == 'y') {
      if (remove(*(argv + 1)) == 0) {
        printf('削除しました\n');
      }
      else {
        printf('削除できませんでした\n');
        return_code = 1;
      }
    }
    else {
      printf('キャンセルします\n');
    }
  }
  else {
    printf('実行時引数の数が不当です\n');
    return_code = 2;
  }

  return return_code;
}

例の実行結果

$ ls -l DIR1
合計 4
-rw-r--r-- 1 user users 20 2008-07-04 09:03 temp_1.txt
$
$ ./remove.exe DIR1
DIR1を削除しますか?(y/n)==> y
削除できませんでした
$
$ ./remove.exe DIR1/temp_1.txt
DIR1/temp_1.txtを削除しますか?(y/n)==> y
削除しました
$
$ ls -l DIR1
合計 0
$
$ ./remove.exe DIR1
DIR1を削除しますか?(y/n)==> y
削除しました
$
$ ls -l DIR1
ls: cannot access DIR1: そのようなファイルやディレクトリはありません
$

関連記事