C#控制台下如何检测指定目录下的指定文件是否存在???
比如说我A文件夹下应该有1.txt文件,但是我放的是2.txt文件,控制台就会告诉我这个文件位置放错了,2.txt应该放在B文件夹里。
请问这个要如何实现啊?
目前我的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
class ListAllFilesDemo
{
public static void Main()
{
Console.Write("请输入要查询的目录: ");
string dir = Console.ReadLine();
try
{
ListFiles(new DirectoryInfo(dir));
}
catch (IOException e)
{
Console.WriteLine(e.Message);
}
Console.ReadKey();
}
public static void ListFiles(FileSystemInfo info)
{
if (!info.Exists) return;
DirectoryInfo dir = info as DirectoryInfo;
//不是目录
if (dir == null) return;
FileSystemInfo[] files = dir.GetFileSystemInfos();
for (int i = 0; i < files.Length; i++)
{
FileInfo file = files[i] as FileInfo;
//是文件
if (file != null)
Console.WriteLine(file.FullName + "\t " + file.Length);
//对于子目录,进行递归调用
else
ListFiles(files[i]);
}
有人说用
var file = new FileInfo(@"d:\test\a\1.txt");
if(file.Exists)
就表示存在了
但是我用这样代码之后,无论a文件夹下放什么文件,他都不会提示文件1放错位置了
请问怎么办? 展开
不是很能体会你的意思....
我用你代码改了测试以后的结果你看看是不是你想要的....
for (int i = 0; i < files.Length; i++)
{
FileInfo file = files[i] as FileInfo;
//是文件
if (file != null)
{
if (file.ToString().Contains(dir.Name.ToString()))
{
Console.WriteLine(file.ToString() + "文件在" + dir.Name.ToString() + "文件夹下,目录正确");
}
else
{
Console.WriteLine(file.ToString() + "文件在" + dir.Name.ToString() + "文件夹下,目录不正确");
}
Console.WriteLine(file.FullName + "\t " + file.Length);
}
//对于子目录,进行递归调用
else
ListFiles(files[i]);