目录检查无效

时间:2015-10-13 14:06:49

标签: c# directory

我尝试创建一个程序,告诉你目录是否存在,但无论我输入什么,它总是出现不存在。

我的代码:

using System;
using System.IO;

class TestFileAndDirectory
{
    public static void Main()
    {
        string input;
        input = Console.ReadLine();
        if ( Directory.Exists(input))
        {
            Console.WriteLine("Exists");
        }
        else
        {
            Console.WriteLine("Doesn't Exist");
        }
        Console.ReadLine();
    }
}

起初我想也许这是我的逻辑,所以我尝试了这本书中的代码:Microsoft Visual C#2010:综合第14章:

using System;
using System.IO;
public class DirectoryInformation
{
   public static void Main()
   {
      string directoryName;
      string[] listOfFiles;
      Console.Write("Enter a folder >> ");
      directoryName = Console.ReadLine();
      if(Directory.Exists(directoryName))
      {
         Console.WriteLine("Directory exists, " +
            "and it contains the following:");
         listOfFiles = Directory.GetFiles(directoryName);
         for(int x = 0; x < listOfFiles.Length; ++x)
           Console.WriteLine("   {0}", listOfFiles[x]);
      }
      else
      {
         Console.WriteLine("Directory does not exist");
      }
   }
}

当我尝试使用此代码时,即使我将其放入与我正在尝试查找的目录相同的基本文件夹中,它也无法正常工作。

有问题的路径:C:\ C#\ Chapter.14 \ Cat Haikus

程序路径:C:\ C#\ Chapter.14 \ TestFilesAndDirectories.cs

1 个答案:

答案 0 :(得分:1)

  

允许path参数指定相对路径或绝对路径   信息。相对路径信息被解释为相对于   当前的工作目录。

     

来源:https://msdn.microsoft.com/en-us/library/system.io.directory.exists(v=vs.110).aspx

如果您的input字符串只是文件夹名称,如“第14章”(相对路径),则此文件夹必须存在于可执行文件的路径中。与PathOfTheExecutableFile\Chapter. 14一样。

如果文件夹位于完全不同的位置,请使用绝对路径。与C:\Users\theuser\Desktop\Chapter. 14一样。

<强>更新

由于您要检查C:\C#\Chapter.14\Cat Haikus文件夹,可以使用

检查它是否存在
if (Directory.Exists(@"C:\C#\Chapter.14\Cat Haikus")){
    Console.WriteLine("Exists");
}

我不知道您确切的文件夹树结构,但如果您的可执行文件位于C:\C#\Chapter.14\的子文件夹中,您也可以使用Directoy.GetParent()方法。