フォルダ名の読み込み方No.23066
Y.T. さん 05/06/02 23:42
 
 メールのバックアップをするためのマクロを作成しているのですが,
不明な点がありまして投稿させていただきました.

「User」以下にある複数のフォルダ名を読み込んで,それぞれのフ
ォルダの中身を順番に処理して行きたいのですが,どのようにすれ
ば宜しいでしょうか?

「GetNextFolder」が使えるかと思ったのですが,これですと最初の
フォルダ名しか拾ってくれません.

どなたかコメントいただければ幸いです.宜しくお願いいたします.

[ ]
RE:23066 フォルダ名の読み込み方No.23067
三月 さん 05/06/03 06:23
 
> メールのバックアップをするためのマクロを作成しているのですが,
>不明な点がありまして投稿させていただきました.
>
>「User」以下にある複数のフォルダ名を読み込んで,それぞれのフ
>ォルダの中身を順番に処理して行きたいのですが,どのようにすれ
>ば宜しいでしょうか?
>
>「GetNextFolder」が使えるかと思ったのですが,これですと最初の
>フォルダ名しか拾ってくれません.
>
1.「GetNextFolder」で「User」の先頭のフォルダ名を取得
2.「SelectFolder」で先頭のフォルダを選択
3.「NextFolder」で次のフォルダを選択
4.「NextFolder」が0を返すまで繰り返す
てな手順になるのでは?

フォルダの中にフォルダがあると、再起的な処理が必要かな?

[ ]
RE:23067 フォルダ名の読み込み方No.23070
秀まるお2 さん 05/06/03 09:30
 
 Userフォルダ配下の先頭フォルダが何かを求めるには、受信フォルダから順番
にGetNextFolderしていって、返ってくる値が"User\...."になるまで繰り返すっ
てするのがいいんじゃないかと思います。

    loaddll "tkinfo.dll";
    $account = dllfuncstr("CurrentAccount");
    $folder = "受信";
    while(1) {
        $path = dllfuncstr("GetNextFolder", $account, $folder );
        if( $path == "" ) {
            $folder = "";
            break;
        }
        #x = strstr( $path, "\\");
        if( #x >= 0 ) {
            $account = leftstr( $path, #x);
            $folder = midstr( $path, #x + 1, 256 );
        } else {
            // アカウントが変わった
            $folder = "";
            break;
        }
        if( leftstr( $folder, 5 ) == "User\\" ) {
            break;
        }
    }
    message $folder;

[ ]
RE:23066 アドバイスありがとうございますNo.23077
Y.T. さん 05/06/04 15:31
 
三月様,秀まるお2様,アドバイスありがとうございます.お返事が
遅くなって済みません.

取り敢えずいただいたアドバイスを元に試行錯誤しており,少し先
が見えてきました.また,結果を報告させていただきます.

取り急ぎお礼かたがた.
 
 

[ ]
RE:23077 アドバイスありがとうございますNo.23078
Y.T. さん 05/06/04 19:41
 
三月様,秀まるお2様,アドバイスありがとうございました.

色々と試して,対象となるフォルダのパスを全て拾い上げることが
できるようになりました.ありがとうございました.

実は次のステップとして,対象となるフォルダ内の特定の日付のメ
ールだけを選択する段階で困ってしまいました.複数のメールの選
択の仕方が分からないのです.また,新規で投稿させていただきま
すので,宜しければご回答願えれば幸いです.

取り敢えずは本件に関しましてはありがとうございました.

[ ]