# NNS_McsFindFirstFile

## 構文

      #include <nnsys/mcs.h>

      u32 NNS_McsFindFirstFile(
              NNSMcsFile*         pFile,
              NNSMcsFileFindData* pFindData,
              const char*         pattern);

## 引数

pFile | ファイル情報構造体へのポインタ。
pFindData | 見つかったファイルに関する情報を格納する構造体へのポインタ。
pattern | 検索するファイル名パターン。

## 返り値

ファイルの検索に成功したら 0、 失敗したら 0以外の値を返します。返り値の詳細は説明を参照してください。

## 説明

指定されたファイル名パターンに一致するPC上のファイルを、ディレクトリ内で検索します。見つかった場合、最初に見つかったファイルに関する情報をpFindDataで指定したNNSMcsFileFindData構造体の変数に格納します。残りのファイルを検索するにはNNS_McsFindNextFile()を呼び出します。検索を終了するときにはNNS_McsCloseFind()を呼び出してください。

ファイル名パターンには、「*」または「?」のワイルドカード文字を含めることができます。また、「%」で囲むことによって「%TWLSYSTEM_ROOT%\include\*.h」のようにPCの環境変数を含めることが出来ます。

`NNSMcsFileFindData`構造体は次のように定義されています。

      #define NNS_MCS_FILEIO_PATH_MAX 260

      typedef struct NNSMcsFileFindData NNSMcsFileFindData;
      struct NNSMcsFileFindData
      {
          u32         attribute;
          u32         size;
          char        name[NNS_MCS_FILEIO_PATH_MAX];
      };

各メンバの内容は次のとおりです。

attribute | ファイルの属性。詳細は下記を参照。
size | ファイルのサイズ(バイト数)。
name | ファイル名。

ファイル属性は次の値の組み合わせとなります。

NNS_MCS_FILEIO_ATTRIBUTE_DIRECTORY | ディレクトリ。
NNS_MCS_FILEIO_ATTRIBUTE_ARCHIVE | アーカイブ。
NNS_MCS_FILEIO_ATTRIBUTE_READONLY | 読み取り専用。
NNS_MCS_FILEIO_ATTRIBUTE_HIDDEN | 隠しファイル。
NNS_MCS_FILEIO_ATTRIBUTE_SYSTEM | システムファイル。
NNS_MCS_FILEIO_ATTRIBUTE_NORMAL | 属性が無いファイル。

返り値は次のいずれかの値をとります。

NNS_MCS_FILEIO_ERROR_SUCCESS (0) | 関数は成功しました。
NNS_MCS_FILEIO_ERROR_COMERROR | 通信エラーが発生しました。
NNS_MCS_FILEIO_ERROR_NOTCONNECT | mcsサーバと接続されていません。
NNS_MCS_FILEIO_ERROR_SERVERERROR | mcsサーバ側でファイル操作に基づくエラーが発生しました。このエラーコードはWin32システムのエラーコードであり、関数`NNS_McsGetServerErrorCode`で取得できます。
NNS_MCS_FILEIO_ERROR_NOMOREFILES | パターンに一致するファイルが見つかりません。

## 参照

`NNS_McsFindNextFile, NNS_McsCloseFind`

## 履歴

2008/06/20 環境変数名をTWLSYSTEM_ROOTに変更。
2005/01/24 ファイル属性とエラーコードについての説明を追加。
2004/10/28 ファイル名パターンについての解説を追加した。
2004/10/19 NNS_McsCloseFindへのリンクが間違っていたのを修正した。
2004/07/01 初版