0

ファイルが存在するかどうかわからない場合.存在する場合は、そのファイルの内容に応じて何かを行います.ファイルは.txtまたは.gz形式である可能性があり、ファイルが存在しない場合もあります. 以下は私のコードです:

      //Check whether is a zip file
      char *pre_pcom_file_copy = new char[strlen(pre_pat_file)+7];
      strcpy (pre_pcom_file_copy,pre_pcom_file);
      strcat (pre_pcom_file_copy,".gz");
      char *cmd = new char[strlen("gzip -dc ")+strlen(pre_pcom_file_copy)+1];
      strcpy (cmd,"gzip -dc ");
      strcat (cmd,pre_pcom_file_copy);
      if ( (pre_pcom = popen(cmd,"r")) == NULL ){
          //Do nothing
      }else{
          cout << "Parsing pre.pcomments file   --->" << pre_pcom_file << endl;
          pcomyyin = pre_pcom;
          if(_vecTime.size() > 0){
              //for pre_pcom _vecTime should be empty
              pcom_time = _vecTime[_vecTime.size()-1];
          }
          first_time = 1; // make sure tester cycle start from 0 from pcomment file
          pcomyyparse ();
          pclose(pre_pcom);
          //delete [] cmd;
          cout << "Parsing pre.pcomments file DONE!" << endl;
      }

hello.abc などの必須ファイルと同じ名前のファイルをチェックしたいのですが、チェックしたいファイルは hello.abc または hello.gz であるか、存在しないことさえあります。ファイル hello.txt または hello.gz がまったく存在しないときにエラーが発生しました。これを解決するにはどうすればよいですか?

4

2 に答える 2

2

考えられるさまざまな名前で fstat() を呼び出し、結果のエラーがあればチェックします。

于 2013-10-16T06:52:14.923 に答える
0

POSIX システム (Linux、BSD、OSX など) を使用している場合は、 を使用statしてファイルが存在するかどうかを確認できます。Windows ではPathFileExists.

または、その機能と同様に、 Boost ファイルシステムライブラリを使用します。exists

于 2013-10-16T06:54:07.833 に答える