Xtra for Director
-- FileXtra --
この「FileXtra」を使用することによって、ファイルのコピー、デリート、その他に、ファイルの存在、ドライブの存在などを調べることができる、非常の重宝なXtraです。

メッセージウィンドウで、put mMessageList( xtra "filextra" ) を実行してみますと、以下のようにメッセージが表示されます。

-- FileXtra v2.0.5 of 26-May-97 by Kent Kersten
-- Copyright (c) 1996-97 Little Planet Publishing
-- For updates see http://www.littleplanet.com/kent/kent.html
-- Contact the author at kent@littleplanet.com
-- This no-charge Xtra may be freely distributed as long as it is
-- accompanied by its documentation and sample movie.
--
-- Drive Functions --
* DriveExists string driveName
* DrivesToList
* DriveFreeSpace string driveName
* DriveIsCDROM string driveName
--
-- File Functions --
* FileOpenDialog string initialDir, string filtStr
* FileSaveAsDialog string initialDir, string filename, string prompt
* FileExists string fileName
* RenameFile string oldName, string newName
* DeleteFile string fileName
* CopyFile string fromFName, string toFName
* GetFileModDate string fileName
--
-- Directory Functions --
* DirectoryExists string dirName
* CreateDirectory string dirName
* DeleteDirectory string dirName
* XDeleteDirectory string dirName
* CopyDirectory string fromDirName, string toDirName
* XCopyDirectory string fromDirName, string toDirName
* DirectoryToList string dirName

では、各コマンドに関して見てみます。
この xtra は、インスタンスを作成する必要がありません。

DriveExists string driveName は、引数のドライブ名が存在する場合は、0、存在しない場合は、-51を返してきます。
メッセージウィンドウで、put DriveExists( "Macintosh HD" ) を実行しますと、
-- 0 (ドライブが存在する場合)
-- -51 (ドライブが存在しない場合)
と、戻り値を返してきます。

DrivesToList は、現在使用しているコンピュータに接続されているドライブのリストを返してきます。
メッセージウィンドウで、put DrivesToList() を実行しますと、
-- ["OS 8", "HDD02", "HDD03", "ANRITSU", "HDD04"]
と、現在接続されているドライブのリストを返してきます。

DriveFreeSpace string driveName は、ドライブの空き容量をバイト数で返してきます。
メッセージウィンドウで、put DriveFreeSpace( "OS 8" ) を実行しますと、
-- 2147482624
と、ドライブ「OS 8」の空き容量を返してきます。

DriveIsCDROM string driveName は、引数で指定されたドライブがCD-ROMドライブかどうかを返してきます。
メッセージウィンドウで、put DriveIsCDROM( "TomCD" ) を実行しますと、
もし、CD-ROMドライブにTomCDというCD-ROMをいれてある場合は、0が返ってきます。
また、CD-ROMドライブでない(ハードディスクなど)の場合は、-61が、CD-ROMドライブにCD-ROMを入れてない場合は、-51が返ってきます。(Windowsの場合、あくまでもドライブ名なので、D:とか、L:とかを指定しなくてはいけません。CD-ROMのラベル名では、ダメです。)

FileOpenDialog string initialDir, string filtStr は、オープンダイアログを表示します。引数は、最初に開くディレクトリと、ダイアログ内に表示するファイルのタイプを指定できます。
メッセージウィンドウで、FileOpenDialog( "Tom:ABC", "TEXT" ) を実行しますと、
TomというボリュームのABCというディレクトリを開き、その中にあるテキストファイルを表示します。ダイアログよりファイルを指定した場合は、そのファイルのフルパスの返してきます。キャンセル下場合は、"" を返してきます。
勘違いをしがちなのですが、FileOpenDialogによってオープンされたダイアログからファイルを選択したときに、そのファイルがDirectorに取り込まれるのではなく、そのファイルのフルパスが取得できるということです。 *Director6でMacで行った場合、指定のディレクトリをちゃんと取得できないようです。

FileSaveAsDialog string initialDir, string filename, string prompt は、引数で指定されたディレクトリを削除します。
メッセージウィンドウで、FileSaveAsDialog( "HDD04:Tom", "MyText", "保存します" ) を実行しますと、
HDD04というボリュームのTomというディレクトリが開き、ファイル名には「MyText」がデフォルトで入っています。また、 このファイル名の上部に「保存します」の文字列が入ります。
この場合も FileOpenDialog と同様に、ファイルを保存するのではなく、保存するファイルのフルパスを返してきます。
※Windowsでは、FileSaveAsDialog( "HDD04\Tom", "MyText", "保存します",0 )
というように、パラメータが一つ余分にあります。最後のパラメータは、0の場合、上書きします。1の場合、うわがきしていいか、ダイアログで聞いてきます。

FileExists string fileName は、引数のフルパスで指定されたファイルの存在をしらべます。
メッセージウィンドウで、FileExists( "OS 8:インターネット:インターネットアクセスについて" ) を実行しますと、
-- 0 (ファイルが存在する場合)
-- -51 (ファイルが存在しない場合)

RenameFile string oldName, string newName は、ファイル名を変更します。
メッセージウィンドウで、RenameFile( the pathName & "123", the pathName & "456" ) を実行しますと、
ファイル名の123は無くなり、ファイル名456ができます。(名称の変更)

DeleteFile string fileName は、引数で指定されたファイルを削除します。
メッセージウィンドウで、XDeleteDirectory( "HDD04:Tom.html" ) を実行しますと、
「HDD04」にある「Tom.html」を削除します。

CopyFile string fromFName, string toFName は、引数1で指定されたファイルを引数2で指定されたディレクトリにコピーします。(ファイル名の変更可)
メッセージウィンドウで、CopyFile( "HDD04:Tom.hrml", HDD03:Tom2.html" ) を実行しますと、
「HDD04」にある「Tom.html」を「HDD03」へ「Tom2.html」というファイル名でコピーします。

GetFileModDate string fileName は、引数で指定されたファイルの最終変更日を返してきます。
メッセージウィンドウで、GetFileModDate( "HDD04:Tom.hrml" ) を実行しますと、
-- "Mon Oct 20 10:44:05 1997 "
の様に、アップデートした日時を返してきます。

DirectoryExists string dirName は、引数で指定されたディレクトリの存在を戻り値として返してきます。
メッセージウィンドウで、put DirectoryExists( "HDD04:Tom" ) を実行しますと、
「HDD04」に、「Tom」というディレクトリが存在すれば、
-- 0
「HDD04」に、「Tom」というディレクトリが存在しなければ、
-- -15
が表示されます。

CreateDirectory string dirName は、引数であるディレクトリを作成します。また、戻り値も返してきます。
メッセージウィンドウで、CreateDirectory( "HDD04:Tom" ) を実行しますと、
ハードディスクの「HDD04」に「Tom」というフォルダが作成されます。

DeleteDirectory string dirName は、引数であるディレクトリを削除します。
メッセージウィンドウで、CreateDirectory( "HDD04:Tom" ) を実行しますと、
ハードディスクの「HDD04」に「Tom」というフォルダが削除されます。(ただし、Tomの中にあるディレクトリは削除しません。)

XDeleteDirectory string dirName は、引数であるディレクトリを削除します。(その中に含まれるディレクトリも削除します。)
メッセージウィンドウで、XDeleteDirectory( "HDD04:Tom" ) を実行しますと、
ハードディスクの「HDD04」に「Tom」というフォルダ内のファイルが全てが削除されます。

CopyDirectory string fromDirName, string toDirName は、引数1であるディレクトリを引数2へコピーします。(ファイル名の変更可。ただし、そのディレクトリ以下のディレクトリはコピーしません。)
メッセージウィンドウで、XDeleteDirectory( "HDD04:Tom", "OS 8:Tom" ) を実行しますと、
「HDD04」にある「Tom」ディレクトリを「OS 8」のディレクトリへ「Tom」という名前でコピーします。(Tomというディレクトリとそこに含まれる書類はコピーしますが、含まれるディレクトリはコピーしません。)

XCopyDirectory string fromDirName, string toDirName は、引数1であるディレクトリを引数2へコピーします。(ファイル名の変更可。ただし、そのディレクトリ以下のディレクトリもコピーします。)
メッセージウィンドウで、XDeleteDirectory( "HDD04:Tom", "OS 8:Tom") を実行しますと、
「HDD04」にある「Tom」ディレクトリを「OS 8」のディレクトリへ「Tom」という名前でコピーします。(Tomというディレクトリ以下、全てをコピーします。)

DirectoryToList string dirName は、引数であるディレクトリ内のディレクトリをリストで返してきます。(不可視ファイルも返します)
メッセージウィンドウで、DirectoryToList( "HDD04:" ) を実行しますと、
-- ["ABC", "Desktop", "Desktop DB", "Desktop DF", "Desktop Folder:","Tom"]
の様に、ファイル、ディレクトリをリストで返してきます。

各関数での戻り値について...
[ return value ] [ error explanation ]
0 Successful completion
-1 General error of unknown origin
-5 File deletion failure
-6 File rename failure
-7 File not found
-8 Specified file is actually a directory
-9 File creation failure
-10 File open failure
-11 File write failure
-12 File close failure
-13 File read failure
-14 Destination disk full
-15 Directory not found
-16 Specified directory is actually a file
-17 Directory creation failure
-18 Could not delete specified directory
-19 Could not retrieve directory ID number
-40 Could not allocate memory for file copy
-51 Specified drive does not exist
-52 Specified drive exists but is not mounted
-61 Specified drive is not a CD-ROM
-210 New filename already exists or two paths are different

[ to xtra index ]