0

同僚がリストからディレクトリを作成している状況に遭遇しました。リスト内の項目の1つがnullであるが、例外がnullではないということが起こります。

私の好奇心を満たすために、私は彼がしていることを模倣するテストプログラムを書きました。このテストプログラムは、すでに存在するc:\Tempにnullディレクトリを作成しようとします。Null例外がスローされることを期待していましたが、例外はスローされませんでした。

これが私のテストプログラムです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace CreateNullDirectory
{
  class Program
  {
    static void Main(string[] args)
    {
        String DirectoryName = null;

        String FullDirectoryName = string.Format("c:\\Temp\\{0}",DirectoryName);

        Console.WriteLine(string.Format("Creating Directory {0}", FullDirectoryName));

        try
        {
            Directory.CreateDirectory(FullDirectoryName);
            Console.WriteLine(string.Format("Successfully created directory {0}", FullDirectoryName));
        }
        catch (Exception ex)
        {
            Console.WriteLine(string.Format("Error creating {0} - {1}", FullDirectoryName, ex.Message));
        }

        Console.ReadLine();

    }
  }
}

出力は次のとおりです。

ここに画像の説明を入力してください

CreateDirectoryは終了するnullを無視し、すでに存在するC:\ Tempを作成しようとしているだけですか?

4

1 に答える 1

2

Directory.CreateDirectory("C:\Temp")フォーマット文字列でnull値を渡すと、が返されるため、実行しているのはを呼び出すことだけですstring.Empty

CreateDirectoryディレクトリが存在しない場合は作成するか、すでに存在する場合は何もしません。

于 2013-01-29T19:34:38.440 に答える