.NET TIPS

ファイルをコピー/削除/リネーム/移動するには?

デジタルアドバンテージ
2003/07/04

 ファイルに対するコピー/削除/リネーム/移動などの操作はすべてFileクラス(System.IO名前空間)にstaticなメソッドとしてまとめられている。

ファイルのコピー

 ファイルをコピーするためには、FileクラスのCopyメソッドを使用する(コードはC#の場合)。

File.Copy("origfile.txt", "newfile.txt");
File.Copy("origfile.txt", @"backup\newfile.txt");
File.Copy("origfile.txt", @"c:\tmp\newfile.txt");

 パラメータには、コピー元とコピー先のファイル名を指定する。それぞれのパラメータでは、カレント・ディレクトリのファイルや、ファイルの相対パス、ファイルの絶対パスを指定することができる。なお、「@"c:\tmp\newfile.txt"」という記述は、「"c:\\tmp\\newfile.txt"」と同等だ。

 ディレクトリやファイルにアクセス権がない場合、コピー元のファイルがない場合、コピー先のファイルがすでに存在する場合などには例外が発生する。すでにコピー先のファイルが存在していて上書きでコピーを行う場合には、3つ目のパラメータとしてtrueを指定すればよい。

File.Copy("origfile.txt", "newfile.txt", true);
File.Copy("origfile.txt", @"backup\newfile.txt", true);
File.Copy("origfile.txt", @"c:\tmp\newfile.txt", true);

ファイルの削除

 ファイルの削除はFileクラスのDeleteメソッドを使用する。パラメータに指定する削除対象となるファイル名は、Copyメソッドと同様に、カレント・ディレクトリのファイルや、ファイルの相対パス、ファイルの絶対パスを指定することができる。

File.Delete("newfile.txt");
File.Delete(@"backup\newfile.txt");
File.Delete(@"c:\tmp\newfile.txt");

ファイルのリネーム(名前変更)と移動

 ファイルのリネーム(名前変更)や移動は、FileクラスのMoveメソッドを使用する。パラメータには、移動元と移動先のファイル名を指定する。それぞれには、カレント・ディレクトリのファイルや、ファイルの相対パス、ファイルの絶対パスを指定できる。

File.Move("origfile.txt", "newfile.txt");
File.Move("origfile.txt", @"backup\orig.txt");
File.Move("origfile.txt", @"c:\tmp\newfile.txt");

 移動先のファイル名が移動元と異なる場合には、ファイル名をリネームしたことになる(FileクラスにはRenameメソッドはない)。ただし、ファイル名を変更しない場合でも、移動先にはファイル名を指定しなければならない(移動先としてディレクトリの指定はできない)。

FileInfoクラスとの違い

 本稿で述べたファイルの操作は、FileInfoクラスを使用しても同様に行うことができる。Fileクラスはstaticなメソッドばかりからなるユーティリティ的なクラスであるのに対して、FileInfoクラスではまず特定のファイルを指定してインスタンスを作成し、それに対して各メソッドの呼び出しを行う。1つのファイルに対して一連のファイル操作を行う場合にはFileInfoクラスを使用すべきだろう。リファレンス・マニュアルには、Fileクラスのstaticなメソッドでは、毎回ファイルに対するセキュリティのチェックが実行されるが、FileInfoクラスのインスタンス・メソッドでは必ずしもそうではないといったことも記述されている。End of Article

カテゴリ:クラス・ライブラリ 処理対象:ディレクトリ&ファイル
使用ライブラリ:Fileクラス(System.IO名前空間)
 
この記事と関連性の高い別の.NET TIPS
ディレクトリを作成/削除/リネーム/移動するには?
ファイルやディレクトリのサイズを取得するには?
ファイルをごみ箱に入れるには?(My機能活用)
ファイルやディレクトリの作成/変更/削除を監視するには?
一時ファイル(テンポラリ・ファイル)を作成するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH