关于大文件的读写问题

rongrongshen 2007-12-27 10:57:03
每个操作系统是否对各种类型的文件大小都有最大限制?比如txt,doc类型的文件。

若我现在想要设计一个程序,该程序实现将一个2G的avi格式的电影文件打开,再将其分割成4个各500m的文件,该如何做?中间有哪些技术要点?谢谢
...全文
153 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lc1987813 2011-04-12
  • 打赏
  • 举报
回复
谢谢,受教了。
lucklyquanter 2008-01-09
  • 打赏
  • 举报
回复
这让我想到当初,我把某种格式的大文件压缩成rar文件,然后把后缀改成txt,然后再压缩成rar文件,如此循环的压缩方法!
llg84 2008-01-08
  • 打赏
  • 举报
回复
其实你按照7楼的方法切一个文件然后合并试试不就知道行不行了~
llg84 2008-01-08
  • 打赏
  • 举报
回复
偏了,文件在磁盘上的组织形式(存储位置和索引信息)与文件本身的格式无关,只与文件系统有关,所以无需分析文件本身的格式,文件本身的格式只对处理该文件的软件有意义。切割和合并属于文件系统处理的范畴,对文件系统来说,任何文件都是一定长度的二进制串而已
rongrongshen 2008-01-08
  • 打赏
  • 举报
回复
据我所知,文件都有自己的组织格式,大文件不是存储在连续的存储区域,所以,每个单位的数据都有一个索引来定位下一段数据的位置,这样的话,比如对AVI文件进行分割,就需要对AVI文件格式进行解析才可分,不知道我的理解是否偏颇?请高手指点
llg84 2008-01-07
  • 打赏
  • 举报
回复
7楼的方法可行的,前提是只需要分开保存再合并,无需对单个文件操作
rongrongshen 2008-01-07
  • 打赏
  • 举报
回复
7楼的imlmm,你试过吗?
imlmm 2007-12-29
  • 打赏
  • 举报
回复
我觉得保存成二进制文件就行了
第一个文件从第0个位置, 读到第500M个位置, 存入一个文件,再从500M + 1到 1000M
存4次就可以了
rongrongshen 2007-12-28
  • 打赏
  • 举报
回复
我看到过文件分割软件,也用过,我想了解下做这方面的一些技术要点,哪位能详述一下,不胜感谢。
flyingwow99 2007-12-27
  • 打赏
  • 举报
回复
1.理论上只受文件系统限制,与自身格式无关
2.LZ想分开刻盘?文件分割器,多的是,去下载吧
jiakuant 2007-12-27
  • 打赏
  • 举报
回复
如果你真需要分割avi文件的话,我可以帮忙!
rongrongshen 2007-12-27
  • 打赏
  • 举报
回复
谢谢你!还有问题请教:
1、比如txt,doc这些类型的文件,它们自身是否就有最大大小限制?
2、我的想法是将2G的avi分割成4个500M的文件,这样方便移动到小空间的存储设备上,分割后的文件只是简单的分割,不需要实际可用;
若要再恢复,可将这4个500M的文件再合成成2G的avi格式。
liangbch 2007-12-27
  • 打赏
  • 举报
回复
1. 能够支持多大文件和文件系统有关,和操作系统关系不大。例如:在windows操作系统,如果你的文件系统是FAT32,那么文件最大不能超过4G,而NTFS的文件系统则可以允许文件大于4G.
2. 文件不能简单的分割。许多文件都有有格式的,如:exe,doc,wma,avi, 如果这个文件的格式和标准不符,则应用程序不能打开这个文件,在打开这个文时,轻则,系统报错。 重则可导致应用程序崩溃。

如果你确实想要分割文件,那么你须需要知道这种文件的格式,文件分割后,需要保证单个文件仍符合标准·
wonderful_abc 2007-12-27
  • 打赏
  • 举报
回复
文件分割:
http://future-tech.czm.cn/curio/Chinese/product_more.asp?id=1097
纯c读写ini配置文件 用c/c++读写ini配置文件有不少第三方的开源库,如iniparser、libini、rwini、UltraLightINIParser等,但都不理想,往往代码较大、功能较弱、 接口使用不方便。尤其在大小写处理、前后空格、各种注释、跨平台换行符支持、带引号字符串处理、无section操作、原格式保持等方面存在问题。 现将本人精心制作的ini读写程序源码奉献给大家,纯c编写,简洁好用。支持windows和linux。 主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号中可带其它引号或;#注释符。 3、支持无section或空section(名称为空)。 4、支持10、16、8进制数,0x开头为16进制数,0开头为8进制。 5、支持section、key或=号前后带空格。 6、支持\n、\r、\r\n或\n\r换行格式。 7、不区分section、key大小写,但写入时以新串为准,并保持其大小写。 8、新增数据时,若section存在则在该节最后一个有效数据后添加,否则在文件尾部添加。 9、支持指定key所在整行删除,即删除该键值,包括注释。 10、可自动跳过格式错误行,修改时仍然保留。 11、修改时保留原注释:包括整行注释、行尾注释(包括前面空格)。 12、修改时保留原空行。以上三点主要是尽量保留原格式。 不足之处: 1、不支持单key多value(逗号分割),只能一次性提取后自行处理。 2、不支持同名重复section和key。(重复section可视为错误,重复key则可能造成分歧) 3、不能提取所有section或key名称。 使用只需两个文件inirw.h、inirw.c,另有测试程序和工程文件,支持windows和linux。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧