ファイル属性取得 (ふぁいるぞくせいしゅとく)

分類分類/ファイル(nakofile.dll)/ファイル情報
種類命令
引数{=?}Fの
説明ファイルFの属性を取得する
識別id:627

説明 ( U D ) *** [2009年02月20日]

返り値は整数で、どのような属性かを調べるためには、「~属性」という名前のシステム変数を用います。例えば、ファイルがアーカイブ属性であることを確認するには、AND演算子&&を用いて、以下のようにします。

Fのファイル属性取得
もしそれ&&アーカイブ属性ならば
 F&『はアーカイブ属性です。』と言う

「~属性」という名前のシステム変数については、下記「関係する命令」を参照してください。

さらに高度な説明 ( U D ) *** [2009年02月20日]

ファイル属性の整数値は、8桁の2進数で考えると分かりやすくなります(なお8桁の2進数は、16進数では2桁です)。以下に、各システム変数の定義値(16進数)と、それを2進表現したものを表にして示します。いずれも2のべき乗の値、つまり1のビットが1つしかないような数で定義されていることが分かります。

システム変数名

定義値(16進数)

2進数

読み込み専用属性

$1

00000001

隠しファイル属性

$2

00000010

システムファイル属性

$4

00000100

ディレクトリ属性

$10

00010000

アーカイブ属性

$20

00100000

ノーマル属性

$80

10000000

そして、ファイルが属性を複数持つ場合、そのファイル属性値は対応する値の論理和(OR)を取り表現します。例えば読み込み専用・アーカイブ属性のファイルの場合、読み込み専用属性||アーカイブ属性 = $1+$20 = $21 = 33で、ファイル属性取得の結果は33という数になります。

この値と、調べたい属性とで論理積(AND)を取ってみます。アーカイブ属性を持つか調べる場合、33&&アーカイブ属性 = $21&&$20 = $20 = 32 となります。なでしこでは、もし~構文で判定式が0以外の値の場合は、「真」だと見なされます。よって、32は0ではないので、このファイルはアーカイブ属性を持つということが分かりました。一方、システムファイル属性か調べる場合ならば、33&&システムファイル属性 = $21&&$04 = 0なので、無事システムファイルではないと判定できます。

関係する命令