文件夹文件遍历并插入数据库的操作,IO Directory File的递归操作
在我们管理内容管理系统时,数据量大时,对机器的依赖性就比较强了,比如,我要将一个文件夹中的很多图片上传到网站,一个个上传会很花时间,就想到了通过遍历文件夹得到文件名,并将路径与文件保存到数据库中对应的字段。
下面写两个实例,
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class Program
{
/// <summary>
/// 打开连接
/// </summary> static void Main(string[] args)
{
string dirp = @"C:\Users\sihang\Desktop\博鳌照片";
DirectoryInfo mydir = new DirectoryInfo(dirp);
StringBuilder sb = new StringBuilder();
foreach (FileInfo fi in mydir.GetFiles())
{
string thumbimg = "/uploadfiles/article/150403/" + fi.Name;
string title = (fi.Name).Substring(, fi.Name.LastIndexOf("."));
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string web = "新华网";
string infoimg = "/uploadfiles/article/150403/" + fi.Name;
//Console.WriteLine(thumbimg);
//Console.WriteLine(title);
//Console.WriteLine(date);
//Console.WriteLine(web);
//Console.WriteLine(infoimg);
//Console.WriteLine("/uploadfiles/article/150403/" + fi.Name);
//Console.WriteLine((fi.Name).Substring(0, fi.Name.LastIndexOf(".")));
//Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//Console.WriteLine("新华网");
//sd += "insert into cc ;";
sb.Append("insert into jcms_normal_content (Img,Title,AddDate,CustomField05,CustomField04,ChannelId,ClassId,IsPass,IsImg,ReadGroup,Module,TemplateId) values ('" + thumbimg + "','" + title + "','" + date + "','" + web + "','" + infoimg + "','2','12','1','1','-1','Picture','1011');\r\n");
} Console.WriteLine(sb.ToString());
//Console.ReadLine();
}
}
}
这是将桌面上博鳌照片的文件夹里的所有图片路径及图片名称作为标题保存到对应的字段,并将sql脚本输出到cmd窗口中去了
示例2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{ string dirv = @"D:\video\ysxs";
DirectoryInfo mydir = new DirectoryInfo(dirv);
StringBuilder sb = new StringBuilder();
foreach (FileInfo fi in mydir.GetFiles())
{
string title = (fi.Name).Substring(, fi.Name.LastIndexOf("."));
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//写法1
string filepath = @"D:\video\ysxs" + fi.Name;
sb.Append("insert into jcms_normal_content (Title,AddDate,ClassId,Editor,IsPass,ReadGroup,Module,TemplateId,CustomField01) values ('" + title + "','" + date + "','8','admin','1','-1','news','11','" + filepath + "');\r\n");
textBox1.Text = sb.ToString(); //写法2
//string s = @"insert into jcms_normal_content ((Title,AddDate,ClassId,Editor,IsPass,ReadGroup,Module,TemplateId,CustomField01)) values ('{0}','" + date + "','8','admin','1','-1','news','11','D:\\video\\ysxs\\{1}');";
//textBox1.Text += string.Format(s, fi.Name.Replace(".txt", ""), fi.Name) + "\r\n";
} }
}
}
新建winform控制台程序,这样就能将sql输出到textbox1文本框中去了。
文件夹文件遍历并插入数据库的操作,IO Directory File的递归操作的更多相关文章
- python 遍历文件夹 文件
python 遍历文件夹 文件 import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirn ...
- java基础IO删除文件夹文件
/** * 定义一个方法,能够删除任意文件夹,文件夹路径由键盘录入 注意:不要在C盘下做测试,请选定无用的文件夹测试! */ 1.键盘录入 private static File getfile() ...
- JavaSE 文件递归之删除&获取文件夹文件夹中全部的以.jpg的文件的绝对路径
1.递归删除文件 假设一个文件夹以下还有子文件夹,进行删除的话会 报错,这个时候要使用递归的方式来删除这个文件文件夹中的全部文件以及文件夹 package cn.itcast.digui; impor ...
- C#获取文件夹/文件的大小以及占用空间 转摘自:http://www.cnblogs.com/chenpeng-dota/articles/2176470.html
C#获取文件夹/文件的大小以及占用空间 今天,头给了个任务:写个方法,我会给你个路径,计算这个路径所占用的磁盘空间 . 然后,找了很多资料.但大部分都是获取文件夹/文件的大小的.对于占用空间的没有成品 ...
- android多国语言文件夹文件汇总
android多国语言文件夹文件汇总如下: 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-zh-rHK 英语(美国):values-e ...
- PHP文件夹文件拷贝/复制函数 dir_copy($src = '', $dst = '')
/* * 文件夹文件拷贝 * * @param string $src 来源文件夹 * @param string $dst 目的地文件夹 * @return bool */ function dir ...
- java实现基于关键字的文件夹(文件)的搜索、文件夹(文件)的复制、删除
最近在做一个项目,需要实现这几项功能,上网查了很多资料,自己研究了好几天终于实现了,现在与大家分享一下. 一.JAVA实现文件夹的搜索 在百度搜索N个技术文章,从哪些大牛们共享的资料中终于写出了我 ...
- Shell脚本递归打印指定文件夹中全部文件夹文件
#!/bin/bash #递归打印当前文件夹下的全部文件夹文件. PRINTF() { ls $1 | while read line #一次读取每一行放到line变量中 do [ -d $1/$li ...
- mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法
补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题. 背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机 ...
随机推荐
- Spring自定义一个拦截器类SomeInterceptor,实现HandlerInterceptor接口及其方法的实例
利用Spring的拦截器可以在处理器Controller方法执行前和后增加逻辑代码,了解拦截器中preHandle.postHandle和afterCompletion方法执行时机. 自定义一个拦截器 ...
- SQL中case语句的两种方式
- JavaScript中的直接量与初始器的区别
很多代码优化及公司规范都会提到 写对象不应该 var obj = new Object() 而应该 var obj = {} 写数组不应该 var arr = new Array() 而应该 var ...
- 微信支付.NET版开发总结(JS API),好多坑,适当精简
前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有 ...
- SVN同步大坑
遇到的问题 这两天一直在搞svn的主从备份,使用的方法是svnsync做的主从同步,同步大部分的仓库都没有什么问题很顺利的就同步完成了,不了解svnsync同步的可以看我这篇,但是在在同步2个仓库的时 ...
- C++ 数组长度 以及 数组名作为参数传递给函数 以及 为什么不在子函数中求数组长度
在看排序,首先是插入排序,思路理清后想用代码实现,然后问题来了: 如何求数组长度? 如果没记错,在Java中应该是有直接可用的方法的, Python中(序列)也有.len,在C/C++中,字符串倒是有 ...
- selenium之ExpectedConditions类
API中对于该类的介绍:Canned ExpectedConditions which are generally useful within webdriver tests.很笼统,大概意思就是在w ...
- selenium循环点击文本框
1.可以用xpath循环点击checkbox List<WebElement> list = dr.findElements(By.className("datagrid-row ...
- codeforces 422A A. Borya and Hanabi(暴力)
题目链接: A. Borya and Hanabi time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- div中的内容垂直居中的五种方法
一.行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:3 ...