我刚刚遇到同事从列表中创建目录的情况。碰巧列表中的一项为空,但异常不为空。
为了满足我的好奇心,我编写了一个测试程序来模仿他在做什么。此测试程序尝试在 c:\Temp 中创建一个空目录,该目录已存在。我原以为会抛出空异常,但没有抛出异常。
这是我的测试程序。
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 ?