• ベストアンサー

C言語、ファイルの存在チェック(ワイルドカードで)

if( access( "*.txt", 0) != -1 ) //ワイルドカードで存在CHK {  //存在しない時 } このようにやりたいのですが、 実験すると、*は使えないようです 何かやりかたないでしょうか? access じゃなくてもかまいません ※vc++環境です よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

これ?

参考URL:
http://msdn.microsoft.com/ja-jp/library/cc429233.aspx
delta77_7
質問者

お礼

早速で有難うございます 使わせていただきます

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

ワイルドカードを使ったファイルの検索ですと WinAPIのFindFirstFile、FindNextFile、FindCloseを使うことになると思います WIN32_FIND_DATA FindFileData; HANDLE hFind; hFind = FindFirstFile( "*.txt", &FindFileData ); if ( hFind == INVALID_HANDLE_VALUE ) {   // 存在しない場合 } else {   // 存在する場合   // FindFileData.cFileName に見つけたファイルの名前を取得   // つぎの合致するファイルの取得には   // FindNextFile( hFind, &FIndFileData );   // を実行します   FindClose( hFind ); }

delta77_7
質問者

お礼

早速で有難うございます 最初の方がいらしたのでお礼のみ述べさせていただきます

関連するQ&A

  • UNIX ファイル存在チェックの方法

    お世話になります。 UNIXにてファイル存在チェックを行うShellスクリプトを作成しています。 ■プログラム if (-f "text_file_*.txt") then echo "存在している" else echo "存在していない" endif ■問題点 IF文中の比較対照ファイルとして、ワイルドカード(*)を 指定しているのですが、文字列として認識されてしまいます。 この方法でワイルドカードとして処理を実行する方法はあるでしょうか? もしくは代替案などありましたら、ご教示いただきたいです。 よろしくお願いします。

  • kshのファイルが存在しない時

    ksh (korn shell)にて if [[ -e file.txt ]]; then とすれば、file.txtが存在する時の処理ができることは分かったのですが、反対に 「ファイルが存在しない時」はどういうif文の書き方をすればいいのでしょうか? man kshで探してみたのですが、探し方がよくわからず、挫折しました。 C言語でいうところの "!"や否定の仕方がありましたら、教えていただきたいと思います。 否定で書けない場合は、別の方法を教えていただければ幸いです。

  • C言語

    C言語で簡単なプログラムを作っているのですが、 「テキストファイルが存在し、かつ空のテキストファイル(開いても何も書かれていない)だと、そのテキストファイルを削除する」 というコードはどうのように書けばいいのでしょうか? 現在自分が考えているのは、 #include<stdio.h> int main(){ FILE *fp; if((fp=fopen("example.txt","r"))==NULL){ printf("file not open\n"); }else if(((fp=fopen("example.txt","r"))!=NULL)&&(fgetc(fp)==NULL)){ //「ファイルがあって、中に何も書かれていない」という条件式を書きたい// remove("example.txt"); } return 0; } 大学で講義としてC言語を習っている程度の知識です。 fopenのif文の書き方があってるかどうかもわからないんですが^^; borland c++ 5.5.1を使用しています。 よろしくお願いします。

  • VBSでファイル存在の有無チェック

    お世話になります。 前回も似たような質問をしておりましたが改めて質問させていただきます。 下記のような"URIAGE.bat"というバッチファイルを実行するTEST.VBSがあります。 CreateObject("WScript.Shell").Run "C:\URIAGEDATA\system\URIAGE.bat",0 やりたい事は"C:\URIAGEDATA\system"配下に"空ファイル.txt"というファイルが存在しなければURIAGE.batを実行して、存在しt場合はURIAGE.batを実行しないで終了、という仕組みにしたいのです。 前回の質問時に"URIAGE.bat実行中に"C:\URIAGEDATA\system"配下に"空ファイル.txt"というチェック用のテンポラリーのファイルを作成して、URIAGE.batを実行した時に、このファイルの存在の有無をチェックする方法をご教授いただきまして、お陰様でうまくいきました。 今回は呼出し元のTEST.VBSの中で"C:\URIAGEDATA\system"配下に空ファイル.txt"が存在しなければURIAGE.batを実行して、存在しなければ実行しないで終了、という様にしたいのです。 環境:Windows XP SP SP3 どなたかご教授いただけますと幸いでございます。

  • [VB2008]ファイル存在確認について

    質問です。VB2008を使ってる者ですが、以下のソースが分りません。 例で言います。 最初に以下のファイル存在を確認します。 C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt 全て存在する ここまでは良いのですが、この後 例えば C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt C:\TEST\test4.txt ←これ(これ) ファイルの存在確認で同じフォルダ("TEST")に 存在確認の必要としない不要ファイル("これ")を検出して 削除したいのですが、方法が分りません。 "これ"の不要ファイルの名前は、必ずしも"test4"では無い 存在チェック以外の不要ファイルを削除したいのです。 Dim checkFile As String = "C:\Work\Test.txt" If System.IO.File.Exists(checkFile) Then Console.WriteLine("ファイルが存在します") Else Console.WriteLine("ファイルが存在しせん") End If 上記の後、必要の無いファイルを検出して削除するには どうすれば良いでしょうか? 凄く困ってるので、教えて下さい

  • ある名前のファイルが存在するかどうか判断できますか?

    データファイル(txt)にデータをタブ区切りで持っていて、 PHPでそれを読み込み整形して表示する、ということをやっています。 (リンク集や一言BBSのようなものです) このデータファイルを複数用意して、 その都度指定したものを表示させたいと考えています。 既にファイルが存在している時は問題無いのですが、 存在しなかった場合にfopen(r)では新規作成できないので エラーが出てしまいます。 そこで、ある名前のtxtファイルが存在すれば表示、 存在しなければ違うもの(メッセージなど)を表示できるよう if文などで判断するには、どうしたら良いでしょうか。。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 関数から関数を呼び出したときのリターン処理について

    宜しくお願いいたします。 ユーザー定義関数からユーザ定義関数を呼び出す必要があり 以下の様にしてみたところ function chk($value) {    if ($value>0) {       return TRUE;    }    return FALSE; } function test(){    $a = 0;    $b = -1;    $c = 2;    $txt = '';    if (chk($a)) {       $txt .= 'aはhoge<br>';    }    if (chk($b)) {       $txt .= 'dはhoge<br>';    }    if (chk($c)) {       $txt .= 'cはhoge<br>';    }    return $txt; } 最初の chk($a) で処理が終わってしまいます。 この場合 chk() の return が test() をも止めてしまっているのでしょうか? return で調べて見ると 呼び出し元のスクリプトに戻る というような解説だったので test() に戻って処理の続きをしてくれる と思ったのですがうまくいきません。 これを return $txt; まで処理させるにはどのようにしたらよいでしょうか? できれば chk() をTRUE、FALSEの判定に使いたいと思います。 何卒ご教授のほどよろしくおねがいします。

    • ベストアンサー
    • PHP
  • DOSバッチファイルで日々ファイル名が変動するファイルの存在チェック

    こんにちは。 フォルダにあるファイルが存在するときに処理を行うバッチファイルを作成しています。 あるファイル名は一部は固定文字で一部は変動します。 具体的には sampleYYMMDD.txt となり、YYMMDDは変動し、その内容は他のファイルdate.txtに入っています。 例えば、date.txtには 041021 がはいっていて バッチファイルでsample041021.txtがあれば次の処理を行うといったロジックを記述したいのですが、どうしたらできますでしょうか? ファイル名が固定であれば単純に FOR %%F DO IF %%F==sample041021.txt 処理 とできそうなのですが、ファイル名の情報はdate.txtの内容に依存します。 もっと簡単なやり方でもかまいません。ヒントをいただけないでしょうか?

  • クエリの存在チェック

    いつもお世話になってます。 WindowsXP,Access2002環境です。 あるクエリがCurrentDB内に存在するかどうか をチェックするにはどうすればいいでしょうか? 使っているモジュールの一部を紹介いただけると 助かります。。。

  • アクセス97のファイルをアクセス2007で開くには

    はじめまして。 手元にAccess97で作成したmdbファイルがるのでが、Windows7環境のAccess2007で開くことができません。 エラーメッセージは、「オブジェクト 'テーブル1'が見つかれませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。」となっています。 このファイルをAccess2007で開くためには、いったんAccess2000~Access2003で保存し直したうえで、Access2007で開く必要があるという情報をMSのページで見ました。 しかし私はAccess2000~Access2003環境を持っておりません。 そのような中で、このAccess97で作成したmdbファイルを開かなければならないのですが、何か方法はないでしょうか。 ご教示いただけると誠に幸いです。 どうぞよろしくお願いいたします。

専門家に質問してみよう