首页 新闻 会员 周边 捐助

C# webForm多个txt文件合并成一个

0
悬赏园豆:15 [已解决问题] 解决于 2014-08-29 11:27
webform 中 比如我这有100个txt文件, 别人访问这个页面时 将这100个txt合并成一个并下载.
最好合并时 可以一边下载一边合并
就像下载网络小说一样.
AdinZ的主页 AdinZ | 初学一级 | 园豆:26
提问于:2014-04-12 16:40
< >
分享
最佳答案
0
// 生成100个测试txt文件
protected void Page_Load(object sender, EventArgs e)
        {
            for (var i = 1; i <= 100; i++)
            {
                using (StreamWriter writer = new StreamWriter(Server.MapPath("/Content/Txt/" +
                    i.ToString().PadLeft(3, '0') + ".txt"), false))
                {
                    writer.WriteLine(i.ToString().PadLeft(3,'0') + " - 这是测试的数据!");
                }
            }
            Response.Write("Create txt done");
        }
// 测试全并并下载
 protected void Page_Load(object sender, EventArgs e)
        {
            var dirInfos = Directory.GetFiles(Server.MapPath("/Content/Txt"));
            Response.ContentType = "application/octet-stream";
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("all.txt", Encoding.UTF8));
            
            foreach (var str in dirInfos)
            {
                using (FileStream fs = new FileStream(str, FileMode.Open, FileAccess.Read))
                {
                    Byte[] bs = new Byte[fs.Length];
                    fs.Read(bs, 0, (int)fs.Length);
                    Response.BinaryWrite(bs);
                }

            }
            Response.End();
        }
收获园豆:10
不要相信我 | 初学一级 |园豆:57 | 2014-05-12 17:54

不错,不过不能一边合并一边下载, 这个合并完浏览器才弹已下载完文件,文件多时合并的比较慢时,浏览器一直加载中,这样很容易被人误无法下载的.

如何像这种

http://www.qingdi.com/modules/article/txtarticle.php?id=922&%20lm=http://www.qingdi.com/book/922.html

AdinZ | 园豆:26 (初学一级) | 2014-05-12 21:07
其他回答(8)
1

在后台读取txt文件,拼接成一个,写入流中

秋壶冰月 | 园豆:5903 (大侠五级) | 2014-04-12 17:29
0

第一点,你合并成一个后还要不要能分开.

第二点,一边下载一边合并不现实.

吴瑞祥 | 园豆:29449 (高人七级) | 2014-04-12 17:49
0

读取txt 然后将内容追加的方式写入一个txt 一边下载一边合并 是否会有丢字节的情况?

wolfy | 园豆:2636 (老鸟四级) | 2014-04-12 21:32
0

将读取到得100个txt文档的流合并成一个,然后保存成一个txt文档,让用户下载这个东西就好了,其他的文档不要动。

收获园豆:5
seaconch | 园豆:4823 (老鸟四级) | 2014-04-14 09:30
0

怎么合并的时候下载?

祥子爱游戏 | 园豆:19 (初学一级) | 2014-05-22 10:49
0

下载好一个后再拼接到上一个就可以了

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-25 09:58
0

可以换个思路考虑,为什么不在服务器放个整体呢,显示的时候按章节分割显示;

CarsonCui | 园豆:162 (初学一级) | 2014-06-26 17:10
0

读出来 StreamReader 读完就是String 然后拼在一起但这样 很耗内存自己 分段读取吧

望着天的蜗牛 | 园豆:354 (菜鸟二级) | 2014-08-16 19:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册