ファイルとフォルダの参照
SenseTalkは、ファイルやファイルシステムを操作するためのいくつかの方法を提供しています。ここで説明するコマンドと関数を使用して、ファイルやファイルシステムの情報にアクセスしたり、作業ディレクトリを決定したり変更したり、パスやディレクトリについての詳細を確認したりできます。また、ファイルサイズや割り当てられた権限など、個々のファイルのプロパティにもアクセスすることができます。
ファイルやファイルシステムオブジェクトを操作するためのSenseTalkのコマンドと関数は、テスト対象のシステム(SUT)ではなく、ローカルマシンで動作します。
以下の例では、SenseTalkを使用してファイルやファイルシステムの情報にどのようにアクセスするかを示しています。ファイルの作成や削除、ファイルへの書き込み、ファイルやファイルシステムオブジェクトの変更方法については、ファイルとフォルダの相互作用を参照してください。
ベストプラクティスとして、SenseTalkスクリプト内で参照されるすべてのファイルは、スイートウィンドウ内のリソースペインを通じてEggplant Functionalに追加するべきです。この方法は、指定されたスイートのスイートディレクトリ内のリソースディレクトリにファイルを保存します。SenseTalkはローカルファイルシステム上の他の場所に保存されたファイルにアクセスすることができますが、リソースディレクトリを使用すると追加の機能が提供されます。詳細については、リソースペインを参照してください。
スクリプト内でファイルを参照する
type code
スクリプト内でファイルを参照するには、単に file
という単語に続けてファイルの名前となる式を使用します。 folder
という単語を file
の代わりに使用することて、同様にフォルダを参照することもできます。
Syntax:
file filePath
folder filePath
directory filePath
folder
とdirectory
の単語はSenseTalkスクリプト内で交互に使用されます。スクリプト内でfolder
の単語が使用されている場所で、代わりにdirectory
の単語を使用することができます。
_filePath_は、Mac/Linux形式またはWindows形式のパスのテキスト、またはパスの各コンポーネントが一つのアイテムであるリストとすることができます。
指定する名前は、ファイルまたはフォルダの完全な(絶対)パス名、または現在の作業フォルダに対する相対パスとすることができます( the folder
グローバルプロパティを参照)。SenseTalkは、次のルールに従って、指定された名前に基づいてファイルの完全な「絶対」パス名を決定します:
- 名前がスラッシュ (/) で始まるか、パスリストの最初のアイテムが "/" であれば、それは既に絶対ファイル名です
- 名前がドライブレターとコロンに続くスラッシュ(例: "C:\")で始まるか、パスリストの最初のアイテムがドライブレターとコロンで、2番目のアイテムがスラッシュであれば、それは既に絶対ファイル名です
- 名前がチルダとスラッシュ (~/) で始まる場合、それはユーザーのホームフォルダに対する相対パスを表します
- 名前がチルダ (~) に続くユーザー名で始まる場合、それはその特定のユーザーのホームフォルダに対する相対パスを表します
- 名前がピリオドとスラッシュ (./) または二つのピリオドとスラッシュ (../) で始まる場合、それは現在の作業フォルダまたはその親フォルダからの相対パスを表します
- それ以外の場合、それは現在の作業フォルダ内のファイルまたはパスを表します
fileDescription()
関数を使用して、ファイルまたはフォルダに関する情報パケットを取得します。返される値はfileDescriptionオブジェクトで す。fileDescriptionは、テキストとして表示される場合、ファイルの短い名前として現れるSenseTalkオブジェクト(プロパティリスト)ですが、そのフルパスを知っており、また、ファイルに関する多くの追加情報も含んでいます。
Example:
open file"/etc/passwd"
move file "runlog24" into folder "archivedLogs"
Folder
, Directory
関数
挙動: 指定したファイルパスの親フォルダを返します。
folder
関数(またはその同義語、directory
)を使用して、指定したファイルまたはフォルダを含むフォルダへのパスを取得します。
返される値は、スラッシュで終わります。ただし、the folderNamesEndWithSlash
グローバルプロパティが false に設定されている場合は除きます。スラッシュで終わることで、単にファイル名を追加するだけでフルパス名を作成することが容易になります。
Syntax:
{the} folder of filePath
folder( filePath )
指定された filePath(以下のSyntaxを参照)が絶対パスでない場合、それは現在の作業フォルダに対する相対パスとして扱われます。これは the folder
グローバルプロパティで示されます。folder
関数は、fileDescription
オブジェクト( files()
や fileDescription()
関数の返り値など)またはスクリプトファイルオブジェクトを引数に呼び出すこともできます。これにより、指定されたファイルの親フォルダを取得します。
フォルダ関数によって返される値は、実際には fileDescription
オブジェクトですが、ほとんどの目的では単に文字列として扱うことができます。その文字列値はフォルダへのフルパスです。
例:
put the folder of myFile into myFolder
put folder(someFile) & "siblingFileName" into newFile