首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环文件夹一个接一个地将doc文件插入sql db。

循环文件夹一个接一个地将doc文件插入sql db。
EN

Stack Overflow用户
提问于 2017-09-28 05:48:40
回答 1查看 417关注 0票数 0

我需要帮助。我必须使用c#将文档文件和它们的文件夹名插入到mssql中。下面是一些示例目录:

\gpvmsrv01 01\输入\扫描\专利\2017\2\i AP 20170115\公式\1.doc\gpvmsrv01 01\输入\扫描\专利\2016\1\i AP 20160248\Description\2_u.doc .

\gpvmsrv01 01\INPUT\Scan\专利权是不可更改的根文件夹。但是其他文件夹可以被循环。而且文件的数量超过了一千。

表名:专利

代码语言:javascript
复制
[app_number] [int] NOT NULL,
[type] [nchar](20) NULL,
[filename] [nchar](10) NULL,
[data] [varbinary](max) NULL,

我应该遍历所有目录。

所以我的第一行值

代码语言:javascript
复制
app_number=20170115
type=Formula
filename=1
data=1.doc file

我的第二行值

代码语言:javascript
复制
app_number=20160248
type=Description
filename=2_u
data=2_u.doc file

如果有人帮我做一些示例代码,我会很棒的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-28 07:06:17

正如佐哈尔在评论中指出的那样,这个问题过于宽泛,因为它涉及多方面的关切:

  1. 文件发现。
  2. 解析路径以确定参数
  3. 数据库交互以更新目标表。

我假设您不知道从哪里开始,所以我会抛出一个代码示例来让您开始:

代码语言:javascript
复制
static void Main(string[] args)
{
    const string baseFolder = "\\gpvmsrv01\\INPUT\\Scan\\Patent\\";
    const string query =
        "INSERT INTO Patent([app_number], [type], [filename], [data]) " +
        "VALUES ({0}, {1}, {2}, {3})"
    ;

    var fileList = Directory
        .EnumerateFiles(baseFolder, "*", SearchOption.AllDirectories)
        .ToArray()
    ;

    using (var conn = new SqlConnection("your connection string goes here"))
    using (var cmd = conn.CreateCommand())
    {
        foreach (var fileX in fileList)
        {
            var parts = fileX.Substring(baseFolder.Length).Split('\\');

            // extract only the number
            var appNum = Regex.Replace(parts[2], "[^0-9]", string.Empty); 
            var typ = parts[3];
            var fn = parts[4];
            var contents = File.ReadAllBytes(fileX);

            cmd.CommandText = string.Format(query, appNum, typ, fn, contents) + Environment.NewLine;
        }

        cmd.ExecuteNonQuery();
    }
}

根据文件夹上的安全权限,您可能希望以管理员身份运行此代码。否则,预期会出现UnauthorizedAccessException

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46461814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档