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放错位置了
请问怎么办? 展开
比如说我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放错位置了
请问怎么办? 展开
2个回答
展开全部
FileInfo file = new FileInfo(@"E:\a\1.txt");
if (file.Exists) { MessageBox.Show("存在"); } else { MessageBox.Show("不存在"); }
是判断1.txt是否存在,如果存在就提示存在. 所以不管你在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准确度更高。
展开全部
只是判断文件是否存在吧。
先调试下:
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
{
}
先调试下:
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();可以获取到目录下的所有文件,根据你自己的条件去判断是不是正确的文件 ;
至于错误文件 的正确路径,那也是要根据你自己的规则去判断的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询