怎样将一个文件最后10个字节移到文件的最前面

siaosa 2014-05-08 11:54:35
怎样将一个文件最后10个字节移到文件的最前面
...全文
155 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-05-08
  • 打赏
  • 举报
回复
引用 7 楼 wddw1986 的回复:
[quote=引用 5 楼 Z65443344 的回复:] [quote=引用 4 楼 wddw1986 的回复:] [quote=引用 3 楼 Z65443344 的回复:] 如果只是在前面插入10个字节的话,还是有办法的. 不过你要同时删除最后的10个字节,MS不可以. 只能整个文件读上来,排序,然后重新写入了.
呵呵,麻烦你给方法,可以在文件开头加上一个字节又不重写整个文件。 windows目前的文件系统做不到这点。[/quote] 以流的形式写入的时候,不是可以设置seek(写入位置)么?[/quote] 一看你就是没真正用过,基本的问题都不懂。写入相当于覆盖,而不是插入。[/quote] 谢谢,学习了. 自己做写入文件的时候,都是直接写入到文件末尾的,所以虽然知道有这么个参数,但是因为没有对应的需求,所以没有真正试验过效果.
cheng2005 2014-05-08
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
[quote=引用 4 楼 wddw1986 的回复:] [quote=引用 3 楼 Z65443344 的回复:] 如果只是在前面插入10个字节的话,还是有办法的. 不过你要同时删除最后的10个字节,MS不可以. 只能整个文件读上来,排序,然后重新写入了.
呵呵,麻烦你给方法,可以在文件开头加上一个字节又不重写整个文件。 windows目前的文件系统做不到这点。[/quote] 以流的形式写入的时候,不是可以设置seek(写入位置)么?[/quote] 一看你就是没真正用过,基本的问题都不懂。写入相当于覆盖,而不是插入。
於黾 2014-05-08
  • 打赏
  • 举报
回复
不过要删除一部分,我还不知道该怎么弄...
於黾 2014-05-08
  • 打赏
  • 举报
回复
引用 4 楼 wddw1986 的回复:
[quote=引用 3 楼 Z65443344 的回复:] 如果只是在前面插入10个字节的话,还是有办法的. 不过你要同时删除最后的10个字节,MS不可以. 只能整个文件读上来,排序,然后重新写入了.
呵呵,麻烦你给方法,可以在文件开头加上一个字节又不重写整个文件。 windows目前的文件系统做不到这点。[/quote] 以流的形式写入的时候,不是可以设置seek(写入位置)么?
cheng2005 2014-05-08
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
如果只是在前面插入10个字节的话,还是有办法的. 不过你要同时删除最后的10个字节,MS不可以. 只能整个文件读上来,排序,然后重新写入了.
呵呵,麻烦你给方法,可以在文件开头加上一个字节又不重写整个文件。 windows目前的文件系统做不到这点。
於黾 2014-05-08
  • 打赏
  • 举报
回复
如果只是在前面插入10个字节的话,还是有办法的. 不过你要同时删除最后的10个字节,MS不可以. 只能整个文件读上来,排序,然后重新写入了.
cheng2005 2014-05-08
  • 打赏
  • 举报
回复
明确一下我说的“没办法”,不是说做不到,而是说没有简单办法。 都是相当于从头还是重写一遍整个文件,如果文件比较大的话就会很慢。
cheng2005 2014-05-08
  • 打赏
  • 举报
回复
没办法,相当于重写整个文件。
jimil 2014-05-08
  • 打赏
  • 举报
回复
这要求有点bt,读取没问题,插入文件首就是整个重写,硬盘磁道都会改变,如果是大文件,不建议这么做,或者搞个文件名相同的,把最后10字节存在于另一文件,需要时调用? 小文件就简单了,普通读取,也不用内存映射,移一下位置,覆盖。

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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