在c#中如何实现读取制定目录(包括子目录)下的文件名?急用,100分。请高手指点!
1、在c#中如何实现读取制定目录(包括子目录)下的图片文件名?
2、这些图片是按年月日_小时分秒命名的,如“20060301_120103.jpg“或“20051201_081655.jpg“,如何将这些文件名中的信息拆开来,放到一个sql的表中。
表格式如下:编号 年 月 日 小时 分 秒
001 2006 03 01 12 01 03
问题点数:100、回复次数:7Top
1 楼wxdl1981(沉默之狼)回复于 2006-03-08 11:58:05 得分 0
Ding Ding Ding Ding...Top
2 楼epngllh(秋天的眼睛)回复于 2006-03-08 11:59:29 得分 0
你在打开目录的时候可以统计文件数,将文件名放入数组,然后取出数据用substring()函数分别取出想要的数据就可以了。
因为我刚转到C#的里的,不太熟悉,我以前搞PB时也遇到过类似的问题,我是这样解决的,不好意思,不能给你源码。Top
3 楼ivsm(走在乡间的小路上)回复于 2006-03-08 15:23:06 得分 100
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
DirectoryInfo dinfo = new DirectoryInfo("C:\\") ;
}
//获取文件
public void GetFiles(DirectoryInfo difo)
{
foreach( DirectoryInfo dir in difo.GetDirectories())
{
GetFiles( dir);
}
foreach(FileInfo fio in difo.GetFiles( "*.jpg"))
{
SaveFileInfoToDataBase( fio);
}
}
public void SaveFileInfoToDataBase(FileInfo fio)
{
string fileNameWithoutExt = fileNameWithoutExt = Path.GetFileNameWithoutExtension(fio.FullName) ;
Regex regx = new Regex(@"^(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})$");
Match mt = regx.Match( "20060301_120103");
if ( mt.Success )
{
foreach(Group gp in mt.Groups )
{
Console.WriteLine("Group:"+"\n"+gp.Value);
}
}
}
}
Top
4 楼ThreadSharp(ThreadSharp V2006)回复于 2006-03-08 15:50:11 得分 0
你这里应该是在指定的路径下存在了一批图片文件,你想把他们的名称提出来然后拆成你要求的结果存入数据库对吧?
用递归吧,很容易的。
要用到的函数你可以到System.IO名称空间下去找。
Top
5 楼hy98521(斯达克)回复于 2006-03-08 16:47:56 得分 0
关注。 不过我建议你用SUBSTRING 那样很灵活。
ivsm(走在乡间的小路上) ( ) 信誉:方法也很好
关注。 小问题。 才能学到东西Top
6 楼hphp9(const)回复于 2006-03-09 17:26:14 得分 0
using System;
using System.IO;
using System.Collections;
public class RecursiveFileProcessor
{
public static void Main()
{
string[] args=System.IO.Directory.GetFileSystemEntries(@"e:\ftp");
foreach(string path in args)
{
if(File.Exists(path))
{
ProcessFile(path);
}
else if(Directory.Exists(path))
{
ProcessDirectory(path);
}
else
{
Console.WriteLine("{0} is not a valid file or directory.",
path); }
}
}
public static void ProcessDirectory(string targetDirectory)
{
// 处理目录中的文件列表
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
ProcessFile(fileName);
// 重新进入目录的子目录
string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach(string subdirectory in subdirectoryEntries)
ProcessDirectory(subdirectory);
}
public static void ProcessFile(string path)
{
Console.WriteLine("Processed file '{0}'.", path);
}
}受各位启发,写了一个程序,但是不知怎么才能让它只检索*.jpg格式的文件,求各位大侠指点迷津,谢谢~!!Top
7 楼ivsm(走在乡间的小路上)回复于 2006-03-09 23:25:00 得分 0
GetFiles()方法的参数,其中就有一个是设置过滤字符串的
如GetFiles("*.jpg")就是只检索jpg文件,这个跟在windows搜索栏填写搜索条件是一样的道理Top
相关问题
- 有急用:如何搜索指定目录下(包括子目录)的指定文件类型的文件并将文件名添加到ListBox的列表中?
- 怎么得到一个目录下所有文件的文件名(包括子目录的)及子目录名
- 列举目录下文件和及其子目录下所有文件名??
- 如何取得指定目录下所有文件的文件名(包括所有下一级子目录中的),和所有的子目录名?
- 请问,如何获得某个目录下所有的文件名,包括子目录的。
- 请教:如何得到指定的目录(包括子目录)下的全部文件名。
- 如何得到一个目录下所有文件的文件名和子目录的目录名?
- 如何获得指定目录下的全部子目录,以及全部文件名称?
- 怎样得到某一目录下所有文件名?该目录包括子目录。
- 如何读取指定目录下所有文件名(包括子目录内文件名)?并存放在某一数组变量中。。。。




