ファイル システム アクション

[ファイル システム アクション] ステップを使用して、ファイルへの直接アクセスまたは ロボット ファイル システム (RFS) によるファイル、ディレクトリ、およびその他のアイテムに対する操作を実行します。

このステップは、次の 3 つのレベルで操作を行います。

  • デバイス レベルのアクションにはコンテキストはなく、パラメータによって完全に制御されます。
  • アプリケーション レベルのアクションは、各ディレクトリがアプリケーションによって表されるディレクトリ レベルで動作します。
  • コンポーネント レベルのアクションは、デバイス ツリーの <item> ノードで表されるファイルまたはディレクトリで動作します。

利用可能なコマンドは、どのレベルで発生しても同じように機能しますが、パラメータの数が異なります。

ローカル Desktop Automation モードでのローカル ファイル システムへのアクセスを含むファイル システム アクセスを有効にするには、RoboServer 設定アプリケーションの [セキュリティ] タブで [ファイル システムとコマンド ラインのアクセスを許可] オプションを選択します。

RoboServer がローカル ファイル システムにアクセスできないように設定されている場合、ロボットは実行できますが、ステップがローカル デバイス上で [直接アクセス] に設定した [ファイル アクセス] を使用するとエラーが発生します。ただし、このステップは、[ファイル アクセス] が [RFS 経由] に設定されているローカル デバイス上で機能します。リモート デバイス上では、[直接アクセス] と [RFS 経由] を実行できます。

アプリケーションとディレクトリ

ロボットは [ディレクトリを一覧表示] アクションを使用して、ディレクトリ内の各オブジェクトの <item> ノードとそのオブジェクトの一部のコア プロパティを含むアプリケーションを開きます。

  • アプリケーションは静的であり、ディレクトリのコンテンツが変更された場合でも更新されません。

  • コンテンツを更新するには、ロボットでアプリケーションを閉じてから再度開くか、[更新] アクションを使用してディレクトリのコンテンツを再スキャンします。

  • [ディレクトリを一覧表示] アクションにより、新しいアプリケーションが開きます。このアクションは、アプリケーションに名前属性を設定するために必要な [アプリケーション名] パラメータを提供します。

  • アプリケーションを開く操作と閉じる操作は非同期で行われます。ディレクトリを開いて閉じるロボットは、操作が完了するまで待機するか、アプリケーション名を使用して以前のアプリケーションを見つけないようにする必要があります。

    エラーを回避するために、ロボット内のアプリケーションにはそれぞれ異なるアプリケーション名を割り当てます。

エラー処理

いずれかのアクションでエラーが発生すると、DeviceIssue 例外が生成されます。これらのエラーは、「トライ-キャッチ」ステップを使用してキャッチできます。

[最後のエラーを取得] アクションを使用して、ファイル システム ドライバーが実行した最後のアクションによって報告されたエラーを取得できます。

アクションとプロパティ

アクション
  • ディレクトリを一覧表示: ディレクトリのコンテンツを表す新しいアプリケーションを開きます。このアクションは、完了するまでに長い時間がかかる可能性があります。

    [ファイル アクセス]、[ディレクトリ]、および [アプリケーション名] パラメータを指定します。

  • ファイル削除: ファイルを削除します。

    [ファイル アクセス] および [ファイル] パラメータを指定します。

  • ディレクトリを作成: ディレクトリを作成します。このアクションは、基盤となるストレージのディレクトリ作成セマンティクスを使用します。

    [ファイル アクセス] および [ディレクトリ] パラメータを指定します。

  • ディレクトリを削除: ディレクトリを削除します。ディレクトリが空でない場合、基盤となるストレージによっては、このアクションが失敗する可能性があります。

    [ファイル アクセス] および [ディレクトリ] パラメータを指定します。

  • 存在する: オブジェクトが存在するかどうかをテストし、結果をブール値として返します。

    ファイル アクセス パラメータとアイテム パラメータ、および結果を [結果] フィールドに格納する変数を指定します。

  • ロック ステータス: Windows ファイルの読み取り/書き込みロックのテストを実行し、数値ステータス インジケータを返します。ロック ステータスは、RFS および Linux では使用できません。

    • 1 ファイルは存在しますが、ロックされていません。

    • 0 ファイルが存在し、ロックされています (読み取りおよび書き込み)。

    • -1 ファイルが存在しません。

    • -2 機能がサポートされていません。

    • -3 別の理由で失敗しました。(根本的なエラーを取得するには、[最後のエラーを取得] ステップを使用します。)

  • ファイル コピー: ファイルを新しい場所にコピーします。RFS とローカル ファイル システムの間でファイルをコピーする場合にも使用します。ソース パラメータおよびターゲット パラメータには、ファイルの名前を含める必要があります。このアクションは、基盤となるストレージのコピー セマンティクスを使用します。

    ファイル名を含むパスを使用して [ソース] および [ターゲット] のパラメータを指定し、ファイル アクセスを指定します。

    ファイル c:\a\b\c.txt をディレクトリ d:\destination にコピーする場合、[ソース] フィールドには c:\a\b\c.txt が含まれている必要があり、[ターゲット] フィールドには d:\destination\c.txt が含まれている必要があります。[ターゲット] フィールドでファイル名を省略した場合、またはターゲット ディレクトリが存在しない場合、結果が予測できない可能性があります。

  • 移動: オブジェクトを移動または名前変更します。ソース パラメータおよびターゲット パラメータには、オブジェクトの名前を含める必要があります。このアクションを使用して、RFS とローカル ファイル システム間でオブジェクトを移動することはできません。実装では、基盤となるストレージの移動セマンティクスを使用します。

    オブジェクト名を含むパスを使用して、[ファイル アクセス]、[ソース]、および [ターゲット] パラメータを指定します。

  • 名前の変更: 現在の場所にあるオブジェクトの名前を変更します。

    [ファイル アクセス]、[アイテム]、および [新しい名前] パラメータを指定します。

  • タイプを取得: オブジェクトのタイプを取得します。オブジェクトが存在しない場合は、DeviceIssue 例外をスローします。このアクションは、次のような値を返します。

    • file オブジェクトはファイルです。

    • directory オブジェクトはディレクトリです。

    • other オブジェクトは存在しますが、ファイルまたはディレクトリではありません。オブジェクトの正確なタイプは基盤となるストレージによって異なりますが、デバイスやシンボリック リンクなどのその他のオブジェクトである場合もあります。

    [ファイル アクセス] パラメータと [アイテム] パラメータ、および結果を [タイプ] フィールドに格納する変数を指定します。

  • パスを取得: アイテムへのパスを取得します。

  • すべてのディレクトリを閉じる: ロボットによって開かれたディレクトリに関連付けられているすべてのアプリケーションを閉じます。

  • ディレクトリを閉じる: アプリケーションを閉じます。

  • カウント: コンポーネント ファインダーに一致するオブジェクトの数をカウントします。このアクションにより、存在のチェックとワイルドカード検索を実行します。

  • 最後のエラーを取得: ファイル システム ドライバーが実行した最後のアクションからエラー メッセージを取得します。

    [エラー] フィールドに結果を格納する変数を指定します。

  • 更新: アプリケーションによって表されるディレクトリのコンテンツをスキャンして再ロードし、ツリーを更新します。このアクションは、完了するまでに長い時間がかかる可能性があります。

プロパティ
  • ファイル アクセス: [直接アクセス] または [RFS 経由] のいずれかを選択します。

  • ディレクトリ: ディレクトリのパスと名前を指定します。

  • ファイル: ファイルのパスと名前を指定します。

  • アイテム: アイテムのパスと名前を指定します。

  • アプリケーション名: アプリケーションで名前属性を設定します。

  • 結果: アクションの結果を保存する変数を指定します。

ディレクトリ ツリー

[ディレクトリを一覧表示] アクションで開かれた各ディレクトリは、独自のツリーを持つアプリケーションによって表されます。

ツリーには次の構造があります。

<fs title=”…” driver=”…” name=”…”>
    <directory path=”…” count=”…”>
        <item name=”…” size=”…” extension=”…” type=”…” created=”…” modified=”….”>
        <item name=”…” size=”…” extension=”…” type=”…” created=”…” modified=”….”>
        <item name=”…” size=”…” extension=”…” type=”…” created=”…” modified=”….”>
        ….

次の表は、ツリー内のノード (要素とも呼ばれます)、属性、および子要素を定義します。

fs ノード

説明

タイプ

title

アプリケーションのタイトル。これは、ディレクトリのパスに設定されます。

属性

driver

固定: fs

属性

name

アプリケーションの名前。

この属性は、[ディレクトリを一覧表示] アクションによって設定されます。

属性

directory

ディレクトリを表します。

子要素

directory ノード

説明

タイプ

path

[ディレクトリを一覧表示] アクションで使用されるパスが含まれます。

属性

count

ディレクトリ内のオブジェクトの数。

属性

item

各アイテムの要素は、ディレクトリ内のオブジェクトを表します。

これらの要素の順序は定義されておらず、[更新] アクションの後に変更される可能性があります。

繰り返しの子要素

item ノード

説明

タイプ

name

オブジェクトの名前。

属性

size

基盤となるストレージによって報告された、オブジェクトのサイズ (バイト単位)。

属性

extension

ディレクトリの場合は空です。オブジェクトの拡張子 (ファイルの場合) は小文字に変換されます。

属性

type

filedirectory、または other

属性

created

基盤となるストレージによって報告された、オブジェクトが作成された時刻。

この値は、ISO8601 表記でローカル時間として表されます。

属性

modified

基盤となるストレージによって報告された、オブジェクトが最後に変更された時刻。

この値は、ISO8601 表記でローカル時間として表されます。

属性