C#文件分割的方法
作者:DTC2 发布时间:2023-09-17 22:20:56
标签: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#程序设计有所帮助。


猜你喜欢
- 在Android平台上面,应用程序OOM异常永远都是值得关注的问题。通常这一块也是程序这中的重点之一。这下我就如何解决OOM作一点简单的介绍
- **请注意!请注意!!!**今天讲给大家讲解非常“有用”的设计模式,解释器模式!!!设计模式有三大种类,一种是创建型模式,一种是结构型模式,
- 前言植物大战僵尸的数据文件是存储在本地的dat文件当中,修改在本地的dat文件就可以修改到游戏中的数据。之前使用二进制编码工具Hex Edi
- 水印种类及功能介绍 PDF水印分为两种:文本水印和图片水印。文本水印一般被用在商业领域,提醒读者该文档是受版权保护的,其他人不能抄
- 最终效果如下大概就几个步骤1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4.项目准备 5.编写 Dock
- 众所周知,android里面我们很熟悉的一个功能,侧滑菜单效果在以前我们大部分都是用的slidingmenu这个开源框架,自从谷歌官方新出的
- 采集器概貌,如下:最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息。网上的Ip纯真数据库,下载下来一
- SpringMVC * path路径的坑SpringMVC提供了很方便的 * 供我们开发使用。在配置文件中通过<mvc:mapping
- Echarts图表数据一般都是从后台数据库实时取数据的 传输数据大多采用JSON数据格式 本文通过springmvc来拦截数据请求 完成数据
- 目前大多数开发者使用EventBus或者Otto作为事件总线通信库,对于RxJava使用者来说,RxJava也可以轻松实现事件总线,因为它们
- Java中常用关键字:与数据类型相关(10)与流程控制相关(13)if: 表示条件判断,一般用法if(关系表达式),后跟else或
- 字符, 字节与字符串字符与字符串字符串内部包含一个字符数组,String 可以和 char[] 相互转换.字符数组变为字符串:public
- Android 关闭多个Activity的实现方法总的来说有四种方法:1、使用Application来进行关闭public class Ap
- 在新建Java项目时,run运行main方法时,报错 “java: 错误: 无效的源发行版:16”,
- 基础部分1. FastJson 简介Fastjson是一个Java库,可用于将Java对象转换为JSON表示。它也可以被用来将一个JSON字
- SUM映射问题当我们根据类别进行统计,返回的数据类型为HashMap<String,Object>,获取数值类型,容易报java
- 前言众所周知,微信聊天中我们输入一些关键词会有表情雨下落,比如输入「生日快乐」「么么哒」会有相应的蛋糕、亲吻的表情雨下落,今天就来完成这个表
- 考虑一个场景,轮流打印0-100以内的技术和偶数。通过使用 synchronize 的 wait,notify机制就可以实现,核心思路如下:
- 文件名:page.xml<RelativeLayout xmlns:android="http://schemas.andr
- Android权限一般是在AndroidManifest.xml中声明,在安装或首次使用的时候系统会自动提示用户是否提供权限Android官