# ファイルのバックアップ

【難易度】☆☆

必要な知識：

- Windowsのディレクトリや、ファイルの知識

いつ何が起こるとも分からないのが、パソコンの世界。間違えて重要なファイルを消してしまったり、パソコンが悪意のあるウイルスに感染して動かなくなってしまったり・・・。いつ何が起きても大丈夫なように定期的にバックアップを取る必要があります。

が、面倒なんですよねぇ。やらなくちゃと分かっているのだけど、あれが必要、これが必要と、時間がかかるし・・・

「社長！そんな時こそ、ひまわりですぜ。」

## こつこつファイルコピー

> '１ファイル単位でコピー 『C:\mml_log\aaaa.txt』から、『C:\backup\aaaa.txt』へ、ファイルコピー。 『C:\mml_log\bbbb.txt』から、『C:\backup\bbbb.txt』へ、ファイルコピー。

> ディレクトリ（フォルダ）単位でコピーします。（サブディレクトリもコピーされます）

> 'フォルダ単位のコピー 『C:\mml_log』から、『C:\backup』へ、ファイルコピー。

## 一気にファイルコピー

> ワイルドカードを使うと、たくさんあるファイルの中から、特定のファイルだけを選び出してコピーすることが出来ます。
> 下のプログラムは、txtの拡張子を持つファイルだけを、コピーします。

> 'フォルダ単位のコピー 『C:\mml_log\*.txt』から、『C:\backup』へ、ファイルコピー。

## バックアップするリストの作成

ひまわりのプログラムトで、バックアップするファイルを、リストアップしてみましょう！
（この段階では、あくまでも、ファイルのピックアップだけ。）

1. ドラッグ＆ドロップで、ファイルを収集
   これは、Windowsのエクスプローラーと同じような感覚でやります。

   「リストにファイルをドロップしてください。」と、表示。 ファイルリストを、リストとして、作成。 その、ファイルドロップは、オン。 その、幅は、500 保存ボタンを、ボタンとして、作成。 その、イベントを、リスト保存に、設定。 その、テキストは、「コピー」。 「ボタンを押すと、クリップボードへコピーします」と、表示。 待機。 ＊リスト保存 ファイルリストの、アイテムを、それに、得る。 それを、言う。 クリップボードへ、保存。 待機

2. ダイアログで、バックアップもとの収集
   ダイアログを出して、１つ１つ選んでいく方式です。

   「ファイル選択」と、表示。 ファイル選択ボタンを、ボタンとして、作成。 その、テキストは、「選択」 その、イベントは、ファイル選択ラベル 「フォルダ選択」と、表示。 ファイル選択ボタンを、ボタンとして、作成。 その、テキストは、「選択」 その、イベントは、フォルダ選択ラベル 名前エディタを、エディタとして、作成。 その、幅は、500 待機。 ＊ファイル選択ラベル 「」の, 読込ファイル選択 名前エディタは、それ。 待機。 ＊フォルダ選択ラベル フォルダ選択。 名前エディタは、それ。 待機。

## ファイルのコピー（１つずつ）

> 普通にファイルをコピーするには、
> Aから、Bへ、ファイルコピー
> を、使います。

> ｛ピックアップしたファイルを指定フォルダへ保存する｝ 'ピックアップしたファイル ファイルリストは、『C:\mml_log\mml_log.txt C:\mml_log\mml_log-1.htm C:\mml_log\mml_log-2.htm C:\mml_log\作者list.txt』 '保存先フォルダ 保存先フォルダは、『c:\temp\』 'コピー ファイルリストを, 反復( ファイル名は、それ。 保存するファイル名の作成。 ファイル名から、それへ、ファイルコピー。 それを、表示。 ) 「終わりました」と、言う。 おわり。 ＊保存するファイル名の作成 ファイル名から、パスを切り出す。 L=文字数(それの)。 それは、ファイル名。L文字、左端削除。 それは、保存先フォルダ&それ。 保存先ファイル名は、それ。 ＊すでにあるファイル名かチェック それが, 存在するか。 もし、それならば('適当な名前をでっちあげる それは、保存先ファイル名&「~」。 保存先ファイル名は、それ。 すでにあるファイル名かチェックへ、飛ぶ。 ) それは、保存先ファイル名。 戻る。

> 保存するファイル名の作成では、コピー元のリストの名前を抜き出して、保存先のフォルダと組み合わせるという処理をしています。ですが、もし、保存先に、既に同名ファイルがあったときには、適当な名前をつけて保存するようになっています。上書き保存する場合は、すでにあるファイル名かチェック以下を、消してください。

## 一気にファイルのリストをコピー

> 配列にコピー元と、コピー先のリストを入れておけば、反復命令で、楽々ファイルコピーです。
> なんだかんだ言って、これが一番実用的な感じです。

> 'カンマで区切ってリストを作成『コピー元,コピー先』 ファイルリスト#0は、『c:\doc\*.txt,c:\backup\txt』 ファイルリスト#1は、『c:\html\*.htm,c:\backup\html』 ファイルリスト#2は、『c:\midi\*.mid,c:\backup\midi』 'リスト内容をファイルコピー ファイルリストを、反復( それを、「,」で、区切る。 それ#0から、それ#1へ、ファイルコピー。 )。

## ついでに圧縮する

> あまり使わないようなファイル（or ディスクスペースを節約したい）場合には、圧縮してバックアップしたいですね。
> ひまわりなら、圧縮も１行で書けるので、ファイルコピーを、圧縮へ書き換えるだけです。

> 'カンマで区切ってリストを作成 ファイルリスト#0は、『c:\doc\*.txt,c:\backup\txt』 ファイルリスト#1は、『c:\midi\*.mid,c:\backup\mid』 ファイルリスト#2は、『c:\html\*.htm,c:\backup\html』 'リスト内容をファイルコピー ファイルリストを、反復( それを、「,」で、区切る。 それ#0を,それ#1へ, 圧縮。 )。

戻る