c#如何批量获取一个文件夹下的文件属性,然后存入数据库
属性信息存入sqlserver数据库。
最好详尽一些,谢谢~ 展开
首先建好数据库。假设下面的数据库已建好,数据表名为fileinfo
id filename filesize extension createtime
分别代码,编号 文件名 文件大小 扩展名 文件创建时间
1,创建数据表
第二步。在对应的文件夹下复制好文件。假设当前目录为image,该目录下有下列文件。
第三步,信息入库,本人这里以C#为例。
public static InsertFilesInfo(string path) //创建方法。这里采用参数传递,方便对不同目录下的文件进行遍历入库
{
string filename=""; ///定义变量,用于存放文件名
string filesize=""; ///定义变量,用于存放文件大小
string extension="";/// 定义变量,用于存放文件扩展名
string createtime=""; ///定义变量,用于存放文件创建时间
System.IO.DirectoryInfo dir= new System.IO.DirectoryInfo(System.Web.HttpContext.Current.Server.MapPath(path));
///先获取相应的目录。并实例化目录对象。方便获取该 目录下的文件。
System.IO.FileInfo[] fInfo = dir.GetFiles();
///创建文件信息集合,将path参数指定的目录下的文件全部获取到,存入fInfo这个文件信息数组。
foreach (System.IO.FileInfo f in fInfo) ///开始遍历数组。将所有的文件遍历出来。
{
filename = f.Name.ToString();
filesize=f.Length.ToString();
extension=f.Extension.ToString();
createtime=fCreationTime.ToString()
///上述操作已经获取到文件相关信息。
下一步入库。
入库,假设数据连接对象已创建好,具体的数据连接代码,这里不再提供了。
string sql="insert fileinfo (filename,filesize,extension,createtime) values ('" + filename + "','"+ filesize+"','"+ extension+"','"+ createtime+"'")";
cmd.CommandType='Text';
cmd.CommandText=sql;
cmd.ExecuteNoQuery();
///文件信息已经入库了。这是循环入库,有多少个文件,数据库表中就会有多少条信息。
}
}
另外可以使用php。原理都是一样的。都是先遍历目录下所有的文件,再将文件信息存储。再遍历。再入库。
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("D:\\Test");
foreach ( System.IO.FileInfo file in dir.GetFiles())
{
file.FullName; // 全名
file.Name; // 文件名
file.Length; // 文件大小
}
至于怎么把这些存入数据库应该不用给代码了吧,搜一下到处都是例子:)