2016-03-23 3 views
0

私はディレクトリへの読み書きを含む何かをしたいとき、私はいつもディレクトリが存在するかどうかチェックする習慣がありました。これには何らかのポイントがありますか?私は次のコードを実行する場合、私は例外を取得します。すでに存在するディレクトリを作成することは何も悪いことではありません。C#でディレクトリを作成する前にディレクトリが存在するかどうかを調べる際には何か問題はありますか?

Directory.CreateDirectory("C:\\test"); 
Directory.CreateDirectory("C:\\test"); 

最初に確認するのはリソースの浪費のようです。ディレクトリが存在しない場合は、2つのコマンドを実行する必要があります。私はCreateDirectoryが何かをする前にチェックを実行すると思いますので、そうした場合は、これを行うには冗長でしょう。

質問を投げる。ディレクトリを作成するときは、次のようにするか、if文を削除する必要がありますか?

if(Directory.Exists("C:\\test")) Directory.CreateDirectory("C:\\test"); 

注 - 私は私は私が必要といけないラインをきちんとコードを維持し、捨て、より興味を持って、ここでのパフォーマンス上の利点は、非常に小さなであることを承知しています。それが出回っ存在する場合はそれが作成されていない

+0

問題なく動作する場合、問題は次のとおりです。チェックしないとパフォーマンスに問題がありますか?私は彼らが正確に同じ小切手を組み込んだと仮定しますが、私は証拠がありません – Mafii

+0

あなたは 'if'を必要としないことを既に知っています。 – juharr

答えて

3

パスの一部が無効でない限り、彼らはすでに存在しているか、いない限りmsdn

に応じて、パスで指定されたし、すべてのディレクトリが作成されます。ディレクトリがすでに存在する場合、このメソッドは新しいディレクトリを作成しませんが、既存のディレクトリのDirectoryInfoオブジェクトを返します。

また、ソースhereを確認して、ディレクトリが存在するかどうかを確認することもできます。

2

Directory.CreateDirectory:彼らはすでに存在していない限り

は、指定したパス内のすべてのディレクトリとサブディレクトリを作成します。

新しいディレクトリを作成する場合や、既存のディレクトリを使用する場合は、存在を確認する必要はありません。読取また

、約Directory.Exists

ザは、何らかのエラーが指定されたファイルは

Existsを使用することができない

が知る 存在するかどうかを決定しようとしたときに発生した場合、方法はを返す存在CreateDirectoryが成功するかどうか確かめてください。あなたは正しいので、意味がありません。 CreateDirectoryの間に例外(無効な名前など)が送出されます。

ディレクトリが既に存在する場合、何かをしなければならない場合にのみ意味があります。このディレクトリにある閉じたファイルを開くか、この情報をログに追加します。

関連する問題