プログラミング工房 > WideStudio > ドキュメント >

WSDfileSystem(ファイルシステム利用のためのクラス)メンバ関数リスト

●WSDfileSystemクラスメンバ関数リスト(Windows98SE / v.3.20-3 で動作を確認)

* WSDfileSystemクラスは、WSGFcheckExistFile、WSGFreadTextFile、WSGFreplaceTextFile
 の3つのグローバル関数で提供している以外の、一般的なファイル・ディレクトリ操作機
 能を提供する。
* WSDfileSystemクラスにはグローバルインスタンスが用意されているため、生成・破棄の
 手間をとることなく、WSGIappFileSystem()関数でポインタを取得するだけでメンバ関数
 を利用することができる。

* 書籍『プログラミングWideStudio』(初版)、およびWideStudio v.3.20-3(win32)のリ
 ファレンスマニュアルには載っていないようです。
* このリストを作るにあたっては、WideStudio MLの過去ログを参考にさせていただきまし
 た。(ML情報ページURL : http://www.widestudio.org/mlinfo.html)

/* ------------------------------------------------------------ */
[ adjustFileName ] 環境変数WSDIRを設定内容と置き換える

書式 char* adjustFileName(char*)
引数 $(WSDIR)を含んだパス
返値 変換されたパス

/* サンプル */
#include <WSDfileSystem.h>
WSCstring s = WSGIappFileSystem() -> adjustFileName("$(WSDIR)\\test01\\test01.jpg");
// 環境変数 WSDIR が C:\WideStudio の場合
// 結果は C:/WideStudio/test01/test01.jpg となる。

/* ------------------------------------------------------------ */
[ rename ] ファイル名またはディレクトリ名を変更する

書式 long rename(char*,char*)
引数 既存のファイルまたはディレクトリのパス、変更後のパス
返値 成功するとWS_NO_ERR、失敗するとWS_ERRが返る

/* サンプル 1 */
#include <WSDfileSystem.h>
long result = WSGIappFileSystem() -> rename("c:\\test\\test1", "c:\\test\\test2");
/* サンプル 2 */
// 移動することもできる
#include <WSDfileSystem.h>
long result = WSGIappFileSystem() -> rename("c:\\test\\test1", "d:\\test1");

/* ------------------------------------------------------------ */
[ deleteFile ] ファイルを削除する

書式 long deleteFile(char*)
引数 既存のファイルのパス
返値 成功するとWS_NO_ERR、失敗するとWS_ERRが返る

/* サンプル */
#include <WSDfileSystem.h>
long result = WSGIappFileSystem() -> deleteFile("c:\\test\\test1");

/* ------------------------------------------------------------ */
[ createDir ] ディレクトリを作成する

書式 long createDir(char*)
引数 作成するディレクトリのパス
返値 成功するとWS_NO_ERR、失敗するとWS_ERRが返る

/* サンプル */
#include <WSDfileSystem.h>
long result = WSGIappFileSystem() -> createDir("c:\\test");
// 一度に複数階層のディレクトリを作ることはできない

/* ------------------------------------------------------------ */
[ deleteDir ] ディレクトリを削除する

書式 long deleteDir(char*)
引数 既存のディレクトリのパス
返値 成功するとWS_NO_ERR、失敗するとWS_ERRが返る

/* サンプル */
#include <WSDfileSystem.h>
long result = WSGIappFileSystem() -> deleteDir("c:\\test");
// 子項目を一緒に削除することはできない

/* ------------------------------------------------------------ */
[ check ] 特定のパスがファイルかディレクトリかを調べる

書式 long check(char*)
引数 既存のファイルまたはディレクトリのパス
返値 ディレクトリの場合WS_FS_DIRが返される。ファイルの場合WS_FS_
   FILEが返される(はずらしいが、私の環境ではよくわからない動作
   になってしまう。単純に"if (!(result & WS_FS_FILE))"として判定
   させてもうまくいかなかった)。リードオンリー属性がついている
   場合WS_FS_READONLYが加算される。

/* サンプル */
#include <WSDfileSystem.h>
#include <WSCmessageDialog.h>

long result = WSGIappFileSystem() -> check("c:\\test");
WSCmessageDialog* msgDlg = WSGIappMessageDialog();
if (result & WS_FS_DIR) {
  msgDlg -> setProperty(WSNlabelString, "dir");
  msgDlg -> popup();
}
if (result & WS_FS_FILE) {
  msgDlg -> setProperty(WSNlabelString, "file");
  msgDlg -> popup();
}
if (result & WS_FS_READONLY) {
  msgDlg -> setProperty(WSNlabelString, "read only");
  msgDlg -> popup();
}

/* ------------------------------------------------------------ */
[ showNetDir ] ?

未実装?

/* ------------------------------------------------------------ */
[ showDir ] 特定のディレクトリにあるディレクトリ名一覧を取得する

書式 WSClistData* showDir(char*)
引数 既存のディレクトリのパス
返値 ディレクトリ名一覧

/* サンプル */
#include <WSDfileSystem.h>
#include <WSCmessageDialog.h>

WSCmessageDialog* msgDlg = WSGIappMessageDialog();
WSClistData* dirList = WSGIappFileSystem() -> showDir("f:\\test");
int i;
int num = dirList -> getNum();
for (i = 0; i < num; i ++) {
	char* name = (char*)(*dirList)[i];
	msgDlg -> setProperty(WSNlabelString, name);
	msgDlg -> popup();
	delete name; // 参照が終わったら必ず一度だけディレクトリ名を削除
}
delete dirList; // 必ず取得されたリストを削除

/* ------------------------------------------------------------ */
[ showFile ] 特定のディレクトリにあるファイル名一覧を取得する

書式 WSClistData* showFile(char*)
引数 既存のディレクトリのパス
返値 ファイル名一覧

/* サンプル */
// showDirと同じようにやればOK

/* ------------------------------------------------------------ */