c++ 创建的文件大小问题

来源:百度知道 编辑:UC知道 时间:2024/05/20 11:01:13
这是我写的一个程序 它要把含有"1300000,中国,北京"格式的十四万条信息的txt文件转换成文件夹目录树形式,但是每个tel.dat文件的占用空间都是1K可是他本身的大小只有11字节,这样导致了整个文件夹的大小达到了1.05G,我想请高手帮我一下,如何能够使文件占用空间的大小变小???
下面是我写的程序:
#include<direct.h>
#include<stdlib.h>
#include<fstream>
#include<string>
#include<iostream>
using namespace std;
void lujing(char buffer[])
{
getcwd(buffer, 100);
}

void main()
{
ifstream ff;
char xx[100];
int i,cnt;
ass:
cout<<"\a";
cout<<"请输入初始化文件名例如(mobilbook.txt):";
cin.getline(xx,100);
ff.open( xx,ios::in);
if(!ff){cout<<"文件不存在!确认后";goto ass;}
char hh[100],ml[200],zj[100],lj[200],na[8]="tel.dat";
lujing(ml);
while(!ff.eof())
{
ff.getline(hh,100,'\n');
cnt=0;
for(i=0;i<15;i++)
{
if(i%2)
{
zj[i]=hh[cnt++];

没有办法,除非你重新格式化分区时指定“分配单元大小”。

1、楼主的程序不能减少每个文件占用的空间。
2、每个文件占用的空间取决于文件系统的类型。比如:NTFS文件系统划分文件簇的大小为4KB,而FAT32文件系统则为16KB。也就是说,虽然文件的实际大小小于4KB或16KB,但是在该文件系统下仍旧占用4KB或16KB空间。
3、如果楼主使用的操作系统中文件系统为NTFS,那么可以使用该文件系统的一项功能:压缩驱动器或文件夹。此项内容出现在驱动器的属性对话框中或文件夹的“属性+高级”对话框中。