C#下如何检测指定目录下的指定文件是否存在

遍历文件夹之后,我希望能检测指定目录下的指定文件是否存在比如说我A文件夹下应该有1.txt文件,但是我放的是2.txt文件,控制台就会告诉我这个文件位置放错了,2.txt... 遍历文件夹之后,我希望能检测指定目录下的指定文件是否存在

比如说我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放错位置了

请问怎么办?
展开
 我来答
boldiy
2012-04-26 · TA获得超过2608个赞
知道小有建树答主
回答量:309
采纳率:100%
帮助的人:124万
展开全部
FileInfo file = new FileInfo(@"E:\a\1.txt");
if (file.Exists) { MessageBox.Show("存在"); } else { MessageBox.Show("不存在"); }
是判断1.txt是否存在,如果存在就提示存在. 所以不管你在a文件夹放什么文件,它都不会检测,只会检查1.txt
更多追问追答
追问
那请问如何才能做到,A文件夹下存在1.txt程序就报对,如果不是1.txt就报错,并指出正确存放的路径呢?

还有如何实现前缀相同文件的搜索,例如TT01-a.txt, TT01-b.txt, TT01-c.txt,用TT01-*.txt指代吗?
追答
只要存在1.txt就会报对,不管有没有其它文件. 如果1.txt不在这个文件夹里面,没办直接指出正确的存放路径,除非使用搜索.
文件搜索,可以使用“*”来代替多个字符,如果只有一个字符,可以用“?”来代替单个字符,这样搜索更准确。比如TT01-?.txt 比TT01-*.txt准确度更高。
百度网友87bbb2c
2012-04-26 · TA获得超过779个赞
知道答主
回答量:313
采纳率:100%
帮助的人:157万
展开全部
只是判断文件是否存在吧。
先调试下:
if (!info.Exists) return;

DirectoryInfo dir = info as DirectoryInfo;
//不是目录
if (dir == null) return;
这部分的代码是不是直接就return了。

System.IO.DirectoryInfo dir = info as System.IO.DirectoryInfo;
System.IO.FileInfo[] files = dir.GetFiles("1.txt");
if (files.Length > 0)
{
}
else
{

}
更多追问追答
追问
请问如何才能做到扫描指定文件夹的文件,能指出错误文件并给出正确路径呢
追答
dir.GetFiles();可以获取到目录下的所有文件,根据你自己的条件去判断是不是正确的文件 ;
至于错误文件 的正确路径,那也是要根据你自己的规则去判断的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式