ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE ファイルコピー・移動の友 /hmaro (02/02/20(Wed) 16:41) [497]
......MESSAGE Re[1]: ファイルコピー・移動の友 /クジラ飛行机 (02/05/03(Fri) 12:11) [837]


親記事 / ▼[ 837 ]
NO.497  ファイルコピー・移動の友
□投稿者/ hmaro -(2002/02/20(Wed) 16:41:14)
□U R L/
{---プログラム掲示板投稿フォーム---
【ソフト名】ファイルコピー・移動の友(バージョン 1.00)
【作 成 者】hmaro
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.26
【転  載】可 ご自由に
【改変運用】可
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】有 Copier.ini プログラムが作ってくれるので、持っている必要はありません。 
【コメント】
実行してみれば、すぐに使い方が解ると思います。基本的に、今日から何日以内に作られたファイルを、ある特定のフォルダから、他のフォルダに、移動したり、コピーしたりします。どのような形式のファイルを移動・コピーするがも、ユーザが設定できます。また、頻繁に使う設定は、ディフォルトとして設定することも可能です。
ちょっとおもしろい機能としては、ファイルの保存先に、説明ファイルを書いたり出来ます。また、設定メニューにある、「保存元 ←→ 保存先」を使うと、保存先と保存元が、入れ替わります。
この、特定期日以内のファイルをリストアップする方法は、掲示板でmokaさんにお世話になりました。基本的なルーチーンは、mokaさん作成のものをそのまま使用しています。
基本的には、自分の日々の仕事を楽にするために作っていました。しかし、プログラム板に載せるので、多少は汎用性を持たせたつもりです。感想まってます!

ファイルは、---投稿フォームここまで---}
*初期値
実行flag=0
MyFolder=『C:\My Documents\』 '保存したいフォルダの設定。
日付=7 '今日から、何日前までのファイルをコピーするかの設定。
形式=『*.txt』 'ファイルの形式の設定。
保存場所=『A:\』 '保存場所のフォルダの設定。

ディフォルト設定イベントを、呼ぶ。
   
'フォームの設定
母艦の、サイズは、(187,156,827,537)。
その、タイトルは、「ファイルコピー・移動」。
灰色で、画面クリア。

'メニューの設定
Settingを、メニュー作成。
その、テキストは、「設定(&S)」。
Settingに、現在の設定をディフォルトにするを、メニュー追加。
現在の設定をディフォルトにするの、イベントを、(
「現在の設定をディフォルトにします。
よろしいですか?」と、二択。
もし、それが、いいえならば、戻る。
「実行flag=『{実行flag}』
MyFolder=『{MyFolder}』
日付=『{日付}』
形式=『{形式}』
保存場所=『{保存場所}』」を、母艦のパス&「Copier.ini」へ、書く。)に、設定。

Settingに、ディフォルト設定に戻すを、メニュー追加。
ディフォルト設定に戻すの、イベントを、(
ディフォルト設定イベントを、呼ぶ。 'Copier.iniを実行する
現在設定イベントを、呼ぶ。     'ステータスメモに反映させる
コピーか移動か初期イベントを、呼ぶ。
日付エディタは、日付。       '日付エディタとコンボにも、反映させる。
形式コンボは、形式。
)に、設定。

Settingに、SwitchSDを、メニュー追加。  '保存元と保存先のフォルダーを入れ替えます
その、テキストは、「保存元 ←→ 保存先」。
SwitchSDの、イベントを、(
TempDir=「」。
TempDir=MyFolder。
MyFolder=保存場所。
保存場所=TempDir。
現在設定イベントを、呼ぶ。
)に、設定。

Settingに、区切り線メニューを、メニュー追加。
その、テキストは、「-」

Settingに、コピーか移動かを、メニュー追加。
その、テキストは、「ファイル移動に設定する」。
コピーか移動かの、イベントを、(
コピーか移動かイベントを、呼ぶ。
)に、設定。

'様々な部品を設定する
日付エディタを、エディタとして、作成。
その、サイズは、(20,20,110,45)
日付エディタは、日付。
その、変更した時は、(
日付エディタが、数字か。
もし、それが、いいえならば、戻る。
日付=日付エディタ。
現在設定イベントを、呼ぶ。
)

(120,25)へ、移動。「日前までの」と、表示。

形式コンボを、コンボとして、作成。
その、サイズは、(260,20,360,50)
形式コンボの、アイテムを、「すべての\n*.doc\n*.hmw\n*.htm\n*.html\n*.jpg\n*.jtd\n*.nso\n*.pdf\n*.pfw\n*.txt」に、設定
形式コンボは、形式。
その、変更した時は、(
もし、形式コンボが、「すべての」なら、形式コンボ=「」
形式=形式コンボ。
現在設定イベントを、呼ぶ。
)

(370,25)へ、移動。「形式のファイル」と、表示。

どこからボタンを、ボタンとして、作成。
その、サイズは、(20,70,160,110)
その、イベントは、(フォルダ選択。もし、それが、「」ならば、戻る。MyFolderは、それ。
現在設定イベントを、呼ぶ。
)

どこへボタンを、ボタンとして、作成。
その、サイズは、(260,70,400,110)
その、イベントは、(フォルダ選択。もし、それが、「」ならば、戻る。保存場所は、それ。
現在設定イベントを、呼ぶ。
)

(200,83)へ、移動。「→」と、表示。

ステータスメモを、メモとして、作成。
その、サイズは、(20,130,620,280)
その、スクロールバーは、縦。

説明ファイル追加チェックを、チェックとして、作成。
説明ファイル追加チェックの、値を、オンに、設定。
その、テキストは、「説明ファイルを保存先に追加」
その、サイズは、(20,300,290,350)

コピー実行ボタンを、ボタンとして、作成。
その、テキストは、「コピー実行」。
その、サイズは、(430,300,620,350)
その、イベントは、実行開始イベント。

コピーか移動か初期イベントを、呼ぶ。
現在設定イベントを、呼ぶ。
待機。

*実行開始イベント
MyFolder&形式の、ファイル列挙。

ファイル一覧=それ
ファイル結果=「」
ファイル数=0   'ファイルの数の初期設定
反復(
(MyFolder&ファイル一覧#(回数-1))の、ファイル日時。'日付&時間を得る。
   「 」までを、切り取る。'日付だけ得る。
   ファイル日付#(回数-1)=それ
   今日と、それの、日数差。
   もし、それ<日付ならば、('日付前までの更新ファイルを得る。
          ファイル結果=「{ファイル結果}{ファイル一覧#(回数-1)}:{ファイル日付#(回数-1)}\n」
         ファイル数=ファイル数+1。
         )
)
ステータスメモ=ステータスメモ&「\n◎ 実行中です ◎\n」&ファイル結果。
0.3秒、待つ。

Fsize=0         'ファイルサイズの初期設定

*コピー開始イベント
ファイル結果を、反復する(
   「:」までを、切り取る。
   もし、実行flag=0ならば、(
      (MyFolder&それ)から、(保存場所&それ)へ、ファイルコピー。)
   もし、実行flag=1ならば、(
      (MyFolder&それ)から、(保存場所&それ)へ、ファイル移動。)
   (MyFolder&それ)の、ファイルサイズ
   Eachは、それ。    '個々のファイルサイズ
   Fsize=Fsize+Each。
)

もし、Fsizeが、1048576以下なら、(切り捨て((Fsize÷1024), 2)。Fsize=それ&「Kb」。)
違えば、(切り捨て((Fsize÷1048576), 2)。Fsize=それ&「Mb」。)

'コピーが終了したら、結果をステータスメモに反映させる。
ステータスメモ=ステータスメモ&「ファイル数={ファイル数}\n総ファイルサイズ={Fsize}\n◎ コピー終了 ◎\n」。

'説明ファイル追加チェックがオンなら、ファイルの説明.txtを作成する。もし既にそのファイルがあれば追加する。
*ファイルの説明ファイル作成イベント
もし、説明ファイル追加チェックが、オンならば、(
Head=「★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
 {今日}から、その{日付}日前までの、
 {MyFolder}にある、{形式}形式のファイル
ファイル数={ファイル数}   総ファイルサイズ={Fsize}
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n」
保存場所&『ファイルの説明.txt』が、存在するか。
もし、それが、はいならば、(「\n\n」&Head&ファイル結果を、保存場所&『ファイルの説明.txt』へ、追加保存。)。
違えば、(Head&ファイル結果を、保存場所&『ファイルの説明.txt』へ、書く。)。
)
待機。

'現在の設定を、ステータスメモに反映させるイベント。
*現在設定イベント
ステータスメモは、「●●●●●●● 現在の設定 ●●●●●●●
★ {今日}から{日付}日前までの、{形式}形式ファイル
★ 対象:{MyFolder}
★ 保存先:{保存場所}」
戻る。

'ディフォルト設定ファイルである、Copier.iniを読み込んで、ひまわりする。
*ディフォルト設定イベント
母艦のパス&「Copier.ini」が、存在するか。 'ディフォルトファイルがあれば、実行
   もし、それならば、(母艦のパス&「Copier.ini」を、開く。
    それを、ひまわりする。
    )
    戻る。

'これは、設定を変えたときに呼ばれます。
*コピーか移動かイベント
もし、実行flag=0ならば、(
実行flag=1
コピーか移動かの、テキストは、「ファイルコピーに設定する」。
コピー実行ボタンの、テキストは、「ファイル移動実行」。
戻る。
)
もし、実行flag=1ならば、(
実行flag=0
コピーか移動かの、テキストは、「ファイル移動に設定する」。
コピー実行ボタンの、テキストは、「コピー実行」。
戻る。
)

'これは、設定を変えないときに呼ばれます。
*コピーか移動か初期イベント
もし、実行flag=0ならば、(
コピーか移動かの、テキストは、「ファイル移動に設定する」。
コピー実行ボタンの、テキストは、「コピー実行」。
戻る。
)
もし、実行flag=1ならば、(
コピーか移動かの、テキストは、「ファイルコピーに設定する」。
コピー実行ボタンの、テキストは、「ファイル移動実行」。
戻る。
)






▲[ 497 ] / 返信無し
NO.837  Re[1]: ファイルコピー・移動の友
□投稿者/ クジラ飛行机 -(2002/05/03(Fri) 12:11:58)
□U R L/
これは、便利!実用的です。

あとは、コピー先に、同名ファイルがあるときに、
日付を比較して、新しければ、上書き、古ければ、上書きしない
などの、オプションがあると、最高に便利になると思います。

・・・って、ものすごく遅いレスですみません。



- Child Tree -