我尝试创建一个程序,告诉你目录是否存在,但无论我输入什么,它总是出现不存在。
我的代码:
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
答案 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()
方法。