为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

c#文件分割器

2020-03-08 9页 doc 80KB 3阅读

用户头像

is_531654

暂无简介

举报
c#文件分割器Visual C#实现文件分割合并器 2005-06-16 08:56作者:马金虎出处:天极网责任编辑:方舟 文件分割器主要是为了解决实际生活中携带大文件的问题,由于存储介质容量的限制,大的文件往往不能够一下子拷贝到存储介质中,这只能通过分割程序把的文件分割多个可携带小文件,分步拷贝这些小文件,从而实现携带大文件的目的。而合并器的作用则能够把这些分割的小文件重新合并,恢复原来的文件。.Net FrameWork SDK中提供的许多处理文件的类库,通过这些类能够简捷、灵活的实现对文件的操作。本文的主要内容就是探讨一下Visu...
c#文件分割器
Visual C#实现文件分割合并器 2005-06-16 08:56作者:马金虎出处:天极网责任编辑:方舟 文件分割器主要是为了解决实际生活中携带大文件的问,由于存储介质容量的限制,大的文件往往不能够一下子拷贝到存储介质中,这只能通过分割程序把的文件分割多个可携带小文件,分步拷贝这些小文件,从而实现携带大文件的目的。而合并器的作用则能够把这些分割的小文件重新合并,恢复原来的文件。.Net FrameWork SDK中提供的许多处理文件的类库,通过这些类能够简捷、灵活的实现对文件的操作。本文的主要内容就是探讨一下Visual C#在对文件编程中的一个比较流行的应用--文件分割器和合并器。下面就首先了解一下Visual C#在实现分割、合并器时所使用的.Net FrameWork SDK提供的类库及其在本文中的使用方法。 一.本文程序、调试和运行的环境: (1).微软公司视窗2000服务器版。 (2).Visual Studio .Net 2003企业构建版,.Net FrameWork SDK版本号4322。 二.Visual C#实现分割合并程序时使用的类库及其使用方法: Visual C#对文件的编程所使用的类库一般都在.Net FrameWork SDK中的System.IO命名空间中,System.IO命名空间提供了在数据流和文件层次上的存取方法,存取方法一般都提供同步、异步二种模式。Visual C#实现分割合并程序时主要使用的是在数据流层次上的类,主要是:FileStream、BinaryReader和BinaryWriter,这三个类一般都提供了同步、异步模式来存取文件数据流,本文一般采用同步模式,虽然在性能上有所欠缺,但使用起来非常方便,也不容易出错。 FileStream类对Visual C#实现文件编程是非常重要的类,具体现在对文件系统中文件的读、写操作上。FileStream类为适应各种具体操作,提供了许多构造函数。本文是使用文件路径对应的字符串和文件打开方式来创建、初始化FileStream实例的。具体语法如下: public FileStream (string path ,FileMode mode) ;   下面是使用此构造函数创建、初始化FileStream实例的具体代码: FileStream SplitFileStream = new FileStream ( "C:\\temp.avi" , FileMode.Open ) ;   表01是FileStream类的常用属性及其说明: 属性 说明 CanRead 获取指示当前流是否支持读取值。 CanSeek 获取指示当前流是否支持查找值。 CanWrite 获取指示当前流是否支持写入值。 Handle 获取当前FileStream对象所封装文件的操作系统文件句柄。 IsAsync 获取指示FileStream是异步还是同步打开的值。 Length 获取用字节表示的流长度。 Name 获取传递给构造函数的FileStream的名称。 Position 获取或设置此流的当前位置。     表01:FileStream类常用属性及其说明 FileStream类中最重要的是其中的方法,表02是FileStream类中的常用方法及其说明: 方法 说明 BeginRead 开始异步读。 BeginWrite 开始异步写。 Close 关闭文件并释放与当前文件流关联的任何资源。 EndRead 等待挂起的异步读取完成。 EndWrite 结束异步写入,在I/O操作完成之前一直阻塞。 Flush 清除该流的所有缓冲区,使所有缓冲的数据被写入基础设备。 Lock 防止其他进程访问某个文件的全部或部分。 Read 从流中读取字节块并将该数据写入给定缓冲区中。 ReadByte 从文件中读取一个字节,并将读取位置提升一个字节。 Seek 将该流的当前位置设置为给定值。 SetLength 将该流的长度设置为给定值。 Unlock 允许其他进程访问以前锁定的某个文件的全部或部分。 Write 使用从缓冲区读取的数据将字节块写入该流。 WriteByte 将一个字节写入文件流的当前位置。     其中:BeginRead、EndRead和BeginWrite、EndWrite是二对异步方法,其功能相当于Read和Write方法。 BinaryReader类提供了以FileStream类的实例为参数的构造函数,其语法比较简单,具体如下: public BinaryReader ( Stream ) ;   下面是通过此构造函数创建、初始化BinaryReader实例的具体代码,其中SplitFileStream是FileStream实例: BinaryReader SplitFileReader = new BinaryReader ( SplitFileStream ) ;   BinaryReader类为从当前的数据流中读取各种读取数据的方法,掌握了这些方法的使用方法也就掌握了BinaryReader类,表03是BinaryReader类中从数据流中读取数据的方法及其说明: 方法 说明 Read 从基础流中读取字符,并提升流的当前位置。 ReadBoolean 从当前流中读取Boolean,并使该流的当前位置提升1个字节。 ReadByte 从当前流中读取下一个字节,并使流的当前位置提升1个字节。 ReadBytes 从当前流中将指定个字节读入字节数组,并使当前位置提升指定个字节。 ReadChar 从当前流中读取下一个字符,并根据所使用的 ReadChars 从当前流中读取指定个字符,以字符数组的形式返回数据,并根据所使用的Encoding和从流中读取的特定字符,提升当前位置。 ReadDecimal 从当前流中读取十进制数值,并将该流的当前位置提升十六个字节。 ReadDouble 从当前流中读取8字节浮点值,并使流的当前位置提升8个字节。 ReadInt16 从当前流中读取2字节有符号整数,并使流的当前位置提升2个字节。 ReadInt32 从当前流中读取4字节有符号整数,并使流的当前位置提升4个字节。 ReadInt64 从当前流中读取8字节有符号整数,并使流的当前位置提升4个字节。 ReadSByte 从此流中读取一个有符号字节,并使流的当前位置提升1个字节。 ReadSingle 从当前流中读取4字节浮点值,并使流的当前位置提升4个字节。 ReadString 从当前流中读取一个字符串。字符串有长度前缀,一次7位地被编码为整数。 ReadUInt16 使用Little Endian编码从当前流中读取2字节无符号整数,并将流的位置提升2个字节。 ReadUInt32 从当前流中读取4字节无符号整数并使流的当前位置提升4个字节。 ReadUInt64 从当前流中读取8字节无符号整数并使流的当前位置提升8个字节。     表03:BinaryReader类中从数据流读取数据方法及其说明 BinaryWriter类也提供了使用以FileStream类的实例为参数的构造函数,其语法和BinaryReader类提供的构造函数非常相似,具体语法如下: public BinaryWriter ( Stream ) ;   下面是通过此构造函数创建、初始化BinaryWriter实例的具体代码,其中SplitFileStream是FileStream实例: BinaryWriter TempWriter = new BinaryWriter (SplitFileStream) ;   BinaryWriter类结构较BinaryReader简单,表04是BinaryWriter类中的常用方法及其说明: 方法 说明 Close 关闭当前的BinaryWriter和基础流。 Flush 清理当前编写器的所有缓冲区,使所有缓冲数据写入基础设备。 Seek 设置当前流中的位置。 Write 将值写入当前流。     表04:BinaryWriter类常用方法及其说明 至此Visual C#实现分割合并程序时所主要使用的类就介绍完了,下面就来介绍Visual C#实现分割文件的解决方法及其具体实现步骤。 三.Visual C#实现分割文件的解决方法及其具体实现步骤: 分割文件其实思路比较简单,首先要确定要分割成小文件的大小,然后确定大文件以此大小分割后的文件数目,并确定小文件的名称,最后通过创建的BinaryReader实例从大文件以确定的小文件大小读取数据,并通过创建BinaryWriter实例向创建的小文件中写入数据,循环此操作,最终实现把大文件分割成的多个小文件。其具体的实现方法请参考下面实现步骤中的第十步。以下就是Visual C#实现分割大文件程序的具体实现步骤: 1. 启动Visual Studio .Net。 2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。 3. 将【项目类型】设置为【Visual C#项目】。 4. 将【】设置为【Windows应用程序】。 5. 在【名称】文本框中输入【文件分割】。 6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在"E:\VS.NET项目"目录中就产生了名称为"文件分割"的文件夹,并在里面创建了名称为"文件分割"的项目文件。具体如图01所示: 图01:【文件分割】项目之【新建项目】对话框   7. 把Visual Studio .Net的当前窗口切换到【Form1.cs(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作: 一个OpenFileDialog组件,用于选择要分割的大文件。 一个ProgressBar组件,用以显示文件分割的进度。 一个ComboBox组件,用以选择文件分割的大小。 二个TextBox组件,分别用以显示OpenFileDialog组件选择后的文件和输入分割后小文件存放的目录。 四个Label组件。 二个Button组件,分别用以选择要分割的大文件和对选定文件进行分割,并在这二个Button组件拖入Form1的设计窗体后,双击它们,则系统会在Form1.cs文件分别产生这二个组件的Click事件对应的处理代码。 8. 把Visual Studio .Net的当前窗口切换到【Form1.cs(设计)】窗口,并按照表05所示数值来调整组件的主要属性: 组件类型 组件名称 属性 设置结果 Button button1 FlatStyle Flat button1 Text 执行 button2 FlatStyle Popup button2 Text ... Form Form1 Text 文件分割 Form1 MaximizeBox False Form1 MinimizeBox True Form1 FormBorderStyle FormBorderStyle.FixedSingle ComboBox comboBox1 Items 720 comboBox1 Items 1440 comboBox1 Items 2880 Label label1 Text 请选择大小: label2 Text 请选择文件: label3 Text 输入存放目录: label4 Text (单位:K) TextBox TextBox1 Text TextBox2 Text         表05:【文件分割】项目中组件主要属性设定数值表 至此【文件分割】项目的界面设计和功能实现的准备工作就完成了,设计后的界面如图02所示:
/
本文档为【c#文件分割器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索