将空字符串作为Directory参数传递

时间:2013-12-10 15:44:17

标签: c# exception-handling directory argumentnullexception

如果你可以帮助我,我就会徘徊。我有一个控制台应用程序,它将字符串目录作为输入。

我想放入一个检查位置,它允许我检查用户是否放入一个空字符串我希望系统记录错误,例如ArgumentNullException。

string inputDirectory = "";
private void DoSomething(string inputDirectory)
            {
                try
                {
                    Directory.CreateDirectory(inputDirectory)
                }
                catch (ArgumentNullException e)
                {
                    Log.Error("program failed because the directory supplied was empty", e.Message);
                }
            }

代码就在这些方面。现在我遇到的问题是异常没有被抛出。相反,程序假定该目录位于项目的bin \ Debug文件夹中。如果提供的目录是“”,我不知道如何停止执行程序我需要做什么。我已经完成了if(inputDirectory == null)但这没有用。 有什么建议? 谢谢, Jetnor。

4 个答案:

答案 0 :(得分:2)

  

我不知道如果要停止执行程序我需要做什么   提供的目录是“”。我已经完成了if(inputDirectory ==   null)但这没效果。

使用string.IsNullOrEmpty

或者,如果您使用的是.Net 4.0或更高版本,则可以使用string.IsNullOrWhiteSpace

 if(string.IsNullOrWhiteSpace(inputDirectory))
 {
    //invalid input
 }

string.IsNullOrEmptystring.IsNullOrWhiteSpace都会检查空字符串和空字符串。 string.IsNullOrWhiteSpace还检查包含所有空格的字符串。

答案 1 :(得分:2)

也许您可以添加支票;

string inputDirectory = "";
private void DoSomething(string inputDirectory)
{
    if (String.IsNullOrEmpty(inputDirectory)
        throw new ArgumentNullException();

    try
    {
        Directory.CreateDirectory(inputDirectory)
    }
    catch (ArgumentNullException e)
    {
        Log.Error("program failed because the directory supplied was empty", e.Message);
    }
}

答案 2 :(得分:1)

您可以使用String.IsNullOrWhitespace 检查字符串是否为,仅为null或仅为空格。

  

指示指定的字符串是空,空还是仅包含空格字符。

if (String.IsNullOrWhitespace(inputDirectory))
{
    throw new YourException("WhatEver");
}

答案 3 :(得分:1)

您需要使用String.IsNullOrEmpty()来检查Empty字符串。

方法String.IsNullOrEmpty()检查给定的字符串是null还是Empty

如果找到给定的String nullEmpty,则会返回true

步骤1:使用String.IsNullOrEmpty()方法检查inputDirectory是空还是空。
第2步:如果方法返回true,则使用ArgumentNullException关键字抛出throw

试试这个:

            string inputDirectory = "";
            private void DoSomething(string inputDirectory)
            {
                try
                {
                    if(String.IsNullOrEmpty(inputDirectory))
                    throw new ArgumentNullException();
                    Directory.CreateDirectory(inputDirectory)
                }
                catch (ArgumentNullException e)
                {
                    Log.Error("program failed because the directory supplied was empty", e.Message);
                }
            }