|
.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クラスのインスタンス・メソッドでは必ずしもそうではないといったことも記述されている。![]()
| カテゴリ:クラス・ライブラリ 処理対象:ディレクトリ&ファイル 使用ライブラリ:Directoryクラス(System.IO名前空間) |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- データ・コレクションをバインドするには? (2013/5/16)
Windowsストア・アプリやWindows Phone 8アプリで、データのコレクションをコントロールにバインドする方法を解説する - コントロール同士をデータ・バインドするには? (2013/5/9)
データ・バインドの仕組みを使うと、データ・クラスだけでなく、コントロール同士もバインドできる。その方法を説明する - 自動ビルドを実現するビルド・サービス環境の構築 (2013/5/8)
ソース・コードの管理環境の構築の次は、自動ビルド環境を構成しよう。Team Foundation Server Expressの機能を活用して簡単に構築 - ライブラリとしてのWindowsランタイム (2013/4/26)
WinRTは「Windowsストア・アプリのためだけの実行環境とライブラリ」ではない?! デスクトップ・アプリからWinRTを使う方法を解説する
|
|
- Hud美さんと学ぶRedmine×Jenkinsの神アジャイル
- Server 2012でサーバの初期設定作業を行う
- アドビの本気度が詰まったAdobe Maxまとめ
- DB・要件定義が通じない? 顧客の知識レベルを探る
- 「初音ミク」や「ゆるキャラ」の商標権ってどうなの?
- 見落としがちな整数関連の脆弱性(前編)
- フェイルオーバー構成がサポートされたDHCPサービス
- データ・コレクションをバインドするには?
- iOSアプリのUIを爆速で激ヤバにする2つのライブラリ
- (iOS 6版)iPhone/iPod touchのカレンダー活用術
- 想定するユーザーを「ペルソナ」としてモデリングする
- 補助簿で確認。いちごクレープ何枚売れた?
キャリアアップ
- - PR -
イベントカレンダー
- - PR -
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
「ITmedia マーケティング」新着記事
Googleの調査結果――店舗で買い物をする顧客の82%は、モバイルサーチで購入を決めている
「店舗内で、購入時にスマートフォンを利用した経験のある顧客の割合」については、84%...
第2回 レビューサイトがアプリを選定/記事化する基準
アプリ開発に携わる人なら誰でも自分の制作したアプリの認知を広げ、ダウンロードを加速...
電通と富士通、ビッグデータを活用したマーケティング領域の事業で協業
電通と富士通は、ビッグデータを活用したマーケティング領域の事業で協業すると発表した。


