.NET TIPS

ディレクトリを作成/削除/リネーム/移動するには?

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

 ディレクトリ(フォルダとも呼ばれる)の作成/削除/リネーム/移動などの操作はすべてDirectoryクラス(System.IO名前空間)にstaticなメソッドとしてまとめられている。なお、ディレクトリのコピーについては、単体でそれを行えるメソッドは.NET Frameworkのクラス・ライブラリには用意されていない(コードはC#の場合)。

ディレクトリの作成

 ディレクトリを作成するには、DirectoryクラスのCreateDirectoryメソッドを使用する。

Directory.CreateDirectory("newdir");
Directory.CreateDirectory(@"anotherdir\subdir");
Directory.CreateDirectory(@"c:\tmp\tmpdir");

 パラメータには、新しく作成するディレクトリ名を指定する。“anotherdir\subdir”のようにネストしたディレクトリを指定した場合にも、それぞれのディレクトリ(この場合にはanotherdirとsubdirの2つ)が作成される。

 なお、すでに存在しているディレクトリやファイルと同名のディレクトリを作成しようとしても、CreateDirectoryメソッドはエラーにならない。

ディレクトリの削除

 ディレクトリを削除するには、DirectoryクラスのDeleteメソッドを使用する。

Directory.Delete("newdir");
Directory.Delete(@"anotherdir\subdir");
Directory.Delete(@"c:\tmp\tmpdir");

 パラメータには、削除するディレクトリ名を相対指定あるいはフルパス指定する。この場合、削除できるのは空でないディレクトリ(ディレクトリ内にファイルやサブディレクトリを含まないディレクトリ)のみである。また、“anotherdir\subdir”や“c:\tmp\tmpdir”のようにネストしたディレクトリを指定しても、削除されるディレクトリは1つだけ(この場合にはsubdirやtmpdir)である。

 空でないディレクトリを、そこに含まれるサブディレクトリやファイルも含めて削除したい場合には、Deleteメソッドの第2パラメータにtrueを指定すればよい。もちろんこれを使用する場合には十分な注意が必要だ。

ディレクトリのリネーム(名前変更)と移動

 ディレクトリのリネーム(名前変更)や移動は、DirectoryクラスのMoveメソッドを使用する。パラメータには、移動元と移動先のディレクトリ名を相対指定あるいはフルパス指定する。

Directory.Move("newdir", "moveddir");
Directory.Move("anotherdir", @"\tmp\anotherdir");

 移動先のディレクトリがすでに存在する場合には、Moveメソッドはエラーとなる。すでに存在するディレクトリの配下にディレクトリを移動する場合には、移動先でのディレクトリ名までを指定する必要がある。なお、異なるボリューム間でのディレクトリの移動はできない。

DirectoryInfoクラスとの違い

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

カテゴリ:クラス・ライブラリ 処理対象:ディレクトリ&ファイル
使用ライブラリ:Directoryクラス(System.IO名前空間)
 
この記事と関連性の高い別の.NET TIPS
ファイルやディレクトリの一覧を取得するには?
ディレクトリが空かどうかを調べるには?
ファイルやディレクトリの一覧を効率的に取得するには?
ファイルやディレクトリをすべてのサブディレクトリから検索するには?
ファイルやディレクトリの存在を確認するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

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

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

キャリアアップ


- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る
- PR -

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

ソリューションFLASH

「ITmedia マーケティング」新着記事

ITシステムやソリューションなどのBtoB購買者は何を求めているのか
ClickZ.comに掲載された記事では、Explore(探索)、Evaluate(評価)、Purchase(購買)...

富士通、オムロン草津工場にて「ものづくりビッグデータ分析」の実証実験を開始
富士通は4月22日、オムロンの草津工場において、プリント基板表面実装ラインの品質向上/...

第2回 ビジネスを継続していくために――BtoB企業に不可欠な「分析の知」
ビジネスを続けていくには、継続してお客さまを見つけることが必要。安定的な取引がある...