# FS_SetPathInfo

## 構文

    #include <nitro/fs.h>

    BOOL FS_SetPathInfo(const char *path, const FSPathInfo *info);

## 引数

path | 情報を変更したいファイルまたはディレクトリのパス名
info | 変更すべき情報が格納された`FSPathInfo`構造体へのポインタ

## 返り値

指定したパスのエントリ情報が正しく変更できればTRUEを、失敗すればFALSEを返します。
失敗時の詳細なエラーは`FS_GetArchiveResultCode()`で取得することができます。

## 説明

指定したファイルまたはディレクトリのエントリ情報を変更します。
この関数は、指定したパスがファイルまたはディレクトリのどちらかとして存在すればそのエントリ情報を変更してTRUEを返します。
以下の場合には失敗してFALSEを返します。

- 指定したパスにファイルもディレクトリも存在しない場合
- アーカイブがエントリ情報の変更機能をサポートしていない場合

エントリ情報の変更機能をサポートしているアーカイブは少なく、 利用できたとしても`FS_GetPathInfo()`関数で得られる情報すべてを任意に変更できるとは限りません。 たとえばNANDアーカイブやSDカードアーカイブでは `FS_ATTRIBUTE_DOS_READONLY`ビットと`FS_ATTRIBUTE_DOS_ARCHIVE`ビット以外は変更できず、設定内容は無視されます。
簡単な使用例を以下に示します。

    /* リードオンリー属性を解除する */
    FSPathInfo info[1];
    if (FS_GetPathInfo(path, info))
    {
        info->attributes &= ~FS_ATTRIBUTE_DOS_READONLY;
        if (FS_SetPathInfo(path, info))
        {
            ...
        }
    }

## 注意

- この関数を割り込みハンドラ(IRQモード)から呼び出すことはできません。
  また、割り込みを禁止したままの状態にあると処理が完了しない場合がある点に注意して下さい。

## 参照

`FSPathInfo
FS_GetPathInfo FS_GetArchiveResultCode`

## 履歴

2007/07/18 初版