1、在c#中如何实现读取制定目录(包括子目录)下的图片文件名?
2、这些图片是按年月日_小时分秒命名的,如“20060301_120103.jpg“或“20051201_081655.jpg“,如何将这些文件名中的信息拆开来,放到一个sql的表中。
表格式如下:编号    年  月  日   小时   分   秒
            001   2006  03  01   12    01    03

解决方案 »

  1.   

    你在打开目录的时候可以统计文件数,将文件名放入数组,然后取出数据用substring()函数分别取出想要的数据就可以了。
    因为我刚转到C#的里的,不太熟悉,我以前搞PB时也遇到过类似的问题,我是这样解决的,不好意思,不能给你源码。
      

  2.   

    /// <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);
    }
    }
    }
    }
      

  3.   

    你这里应该是在指定的路径下存在了一批图片文件,你想把他们的名称提出来然后拆成你要求的结果存入数据库对吧?
    用递归吧,很容易的。
    要用到的函数你可以到System.IO名称空间下去找。
      

  4.   

    关注。 不过我建议你用SUBSTRING 那样很灵活。 
    ivsm(走在乡间的小路上) ( ) 信誉:方法也很好
    关注。 小问题。 才能学到东西
      

  5.   

    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格式的文件,求各位大侠指点迷津,谢谢~!!
      

  6.   

    GetFiles()方法的参数,其中就有一个是设置过滤字符串的
    如GetFiles("*.jpg")就是只检索jpg文件,这个跟在windows搜索栏填写搜索条件是一样的道理