C#文件分割的方法

本文实例讲述了C#文件分割的方法。分享给大家供大家参考。具体如下:

1. 小文件分割(适用于小于等于64M的文件):

using System;
using System.IO;
string filetosplit=@"C:\temp\data.bin";
string targetpath=@"D:\store";
FileStream fsr = new FileStream(filetosplit, FileMode.Open, FileAccess.Read);
long FileLength=fsr.Length;
byte[] btArr = new byte[FileLength];
fsr.Read(btArr, 0, (int)FileLength);
fsr.Close();
int splitcount=3;
long PartLength=FileLength/splitcount+FileLength%splitcount;
int nCount=(int)Math.Ceiling((double)FileLength/PartLength);
string strFileName=Path.GetFileName(filetosplit);
long byteCount=0;
for(int i=1;i<=nCount;i++,byteCount=(i<nCount?byteCount+PartLength:FileLength-PartLength))
{
  FileStream fsw = new FileStream(targetpath + Path.DirectorySeparatorChar+ strFileName +i, FileMode.Create, FileAccess.Write);
  fsw.Write(btArr, (int)byteCount, (int)(i<nCount?PartLength:FileLength-byteCount));
  fsw.Flush();
  fsw.Close();
}

2. 大文件分割(适用于大于64M的文件)

using System;
using System.IO
string filetosplit=@"C:\temp\data.bin";
string targetpath=@"D:\store";
FileStream fsr = new FileStream(filetosplit, FileMode.Open, FileAccess.Read);
long FileLength=fsr.Length;
byte[] btArr = new byte[FileLength];
fsr.Read(btArr, 0, (int)FileLength);
fsr.Close();
int splitcount=3;
long PartLength=FileLength/splitcount+FileLength%splitcount;
int nCount=(int)Math.Ceiling((double)FileLength/PartLength);
string strFileName=Path.GetFileName(filetosplit);
long byteCount=0;
for(int i=1;i<=nCount;i++,byteCount=(i<nCount?byteCount+PartLength:FileLength-PartLength))
{
  FileStream fsw = new FileStream(targetpath + Path.DirectorySeparatorChar+ strFileName +i, FileMode.Create, FileAccess.Write);
  long bc=byteCount;
  long PartCount=i<nCount?PartLength:FileLength-bc;
  int PartBufferCount=(int)(PartCount<int.MaxValue/32?PartCount:int.MaxValue/32);
  int nc=(int)Math.Ceiling((double)PartCount/PartBufferCount);
  for(int j=1;j<=nc;j++,bc=(j<nCount?bc+PartBufferCount:PartCount-PartBufferCount))
    fsw.Write(btArr, (int)bc, (int)(j<nc?PartBufferCount:PartCount-bc));
  fsw.Flush();
  fsw.Close();
}
fsr.Close();

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C# 合并GriewView相同列的小例子

    复制代码 代码如下: /// <summary>     /// 合并GridView中某列相同信息的行(单元格)     /// </summary>     /// <param name="GridView1"></param>     /// <param name="cellNum"></param>     public static void GroupCol(GridView G

  • C#实现TIF图像转PDF文件的方法

    本文实例讲述了C#实现TIF图像转PDF文件的方法.分享给大家供大家参考.具体实现方法如下: 这里介绍使用TIFtoPDF的用法.该工具可以将多个TIF图像文件合并成一个PDF文件 TIFtoPDF.rar文件点击此处本站下载. Program.cs文件如下: using System; using System.Collections.Generic; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; usi

  • C#通过流写入数据到文件的方法

    本文实例讲述了C#通过流写入数据到文件的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.IO; public class WriteFileStuff { public static void Main() { FileStream fs = new FileStream("c:\\tmp\\WriteFileStuff.txt", FileMode.OpenOrCreate, FileAccess.Write); StreamWr

  • C#实现合并多个word文档的方法

    本文实例讲述了C#实现合并多个word文档的方法,是非常具有实用价值的技巧.分享给大家供大家参考. 具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.Office.Interop.Word; using System.Reflection; using System.IO; using System.Diagnostics;

  • c#中合并DataTable重复行的值

    复制代码 代码如下: //DataTable数据添加            Hashtable ht = new Hashtable();            DataTable dt = new DataTable();            DataColumn dc = new DataColumn("id");            dt.Columns.Add(dc);            dc = new DataColumn("name");   

  • C#自适应合并文件的方法

    本文实例讲述了C#自适应合并文件的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.IO; namespace MergeFile { class Program { public static void Main(string[] args) { int count=1; string sourcepath=@"D:\SplitFile"; string filetomerge=@"C:\编程的奥秘.pdf";

  • C#逐行读取文件的方法

    本文实例讲述了C#逐行读取文件的方法.分享给大家供大家参考.具体如下: 这里使用C#逐行读取文件,对于大文件的读取非常有用. StreamReader sr = new StreamReader("fileName.txt"); string line; while((line= sr.ReadLine()) != null) { Console.WriteLine("xml template:"+line); } if (sr != null)sr.Close()

  • C#文件合并的方法

    本文实例讲述了C#文件合并的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.IO; string filetomerge=@"C:\temp\data.bin"; string targetpath=@"D:\store"; string strFileName = filetomerge.Substring(filetomerge.LastIndexOf(Path.DirectorySeparatorChar)

  • go语言实现文件分割的方法

    本文实例讲述了go语言实现文件分割的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import (  // "bufio"  "flag"  "fmt"  "io"  "os" ) import "strconv" var infile *string = flag.String("f", "Null", "ple

  • C#文件分割的方法

    本文实例讲述了C#文件分割的方法.分享给大家供大家参考.具体如下: 1. 小文件分割(适用于小于等于64M的文件): using System; using System.IO; string filetosplit=@"C:\temp\data.bin"; string targetpath=@"D:\store"; FileStream fsr = new FileStream(filetosplit, FileMode.Open, FileAccess.Rea

  • Java实现文件分割与合并

    本文实例为大家分享了Java实现文件分割与合并的具体代码,供大家参考,具体内容如下 文件的操作 文件的分割 package com.xhh.util; import java.io.*; /** * 文件分割的方法 * @param SrcFilePath 指定分割的文件路径 * @param SingleGoalFileSize 分割文件的个数 * @param GoalFileDirectory 分割之后的路径 */ public class Split{ public static voi

  • go语言对文件按照指定块大小进行分割的方法

    本文实例讲述了go语言对文件按照指定块大小进行分割的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: import (  // "bufio"  "flag"  "fmt"  "io"  "os" ) import "strconv" var infile *string = flag.String("f", "Null", "

  • C# 复制与删除文件的实现方法

    C# 复制与删除文件的实现方法 1.首先是复制文件 首先打开我们的对话框获得文件路径,当然也可以直接编写路径 private void BtnAddFile_Click(object sender, RoutedEventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

  • PHP接收App端发送文件流的方法

    本文实例讲述了PHP接收App端发送文件流的方法.分享给大家供大家参考,具体如下: 解决思路: 1. 客户端多张图片进行循环上传,同时附带参数,并用一定规则组合生产数据流(图片数据放在最后) 2. 使用数据流进行传输,php服务端用file_get_content('php://input')进行接收 3. 传输完毕后将数据流按照规则分割,取出最后的图片数据,并写入图片文件 示例代码: 以下代码是发送单张图片和参数PHP文件,多张图片可循环调用. <?php /* curl_post.php *

  • Linux tomcat下catalina.out日志文件分割

    Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志.tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli.jar包到./bin/目录下: 2.拷贝log4j.jar,lo4j.properties到./lib目录下; 3.删除./conf/logging.properties 4.重启 log4j配置样本 实例代码: lo

  • C#实现复制文件夹中文件到另一个文件夹的方法

    本文实例讲述了C#实现复制文件夹中文件到另一个文件夹的方法.分享给大家供大家参考.具体如下: private void CopyDir(string srcPath, string aimPath) { try { // 检查目标目录是否以目录分割字符结束如果不是则添加 if (aimPath[aimPath.Length - 1] != System.IO.Path.DirectorySeparatorChar) { aimPath += System.IO.Path.DirectorySep

  • iOS 断点上传文件的实现方法

    项目开发中,有时候我们需要将本地的文件上传到服务器,简单的几张图片还好,但是针对iPhone里面的视频文件进行上传,为了用户体验,我们有必要实现断点上传.其实也不是真的断点,这里我们只是模仿断点机制. 需求 既然需要上传文件,那最好要有一个上传列表界面,方面用户对上传中的文件进行实时管理.这里我简单搭建了一个上传列表界面,如下图: 该界面实现的功能:左滑删除,单击暂停.取消,清空列表.退出该界面可后台上传,暂停再次开始或则app被kill掉依旧支持续传.上传完成.删除正在上传文件.清空上传列表都

  • Python读取csv文件分隔符设置方法

    Windows下的分隔符默认的是逗号,而MAC的分隔符是分号.拿到一份用分号分割的CSV文件,在Win下是无法正确读取的,因为CSV模块默认调用的是Excel的规则. 所以我们在读取文件的时候需要添加分割符变量. import csv import os cwd = os.getcwd() print ("Current folder is %s" % (cwd) ) csvfile = open( cwd + '\data\eclipse\change-metrics.csv','r

随机推荐