#include
#include
#include
#include
using namespace std;
int main()
{
string path;
cout<<"请输入要分隔的文件路径:";
cin>>path;
string block;
cout<<"请输入每块的文件大小(1G/1M/1K/1B):";
cin>>block;
const int block_size=33554432;
unsigned __int64 size;
int ubound=block.size()-1;
sscanf(block.substr(0,ubound).c_str(),"%I64d",&size);
switch(block[ubound])
{
case 'G':
{
size <<=30;
break;
}
case 'M':
{
size <<=20;
break;
}
case 'K':
{
size <<=10;
break;
}
default:
{
break;
}
}
ifstream in(path.c_str(),ios::binary);
if(!in)
{
cout<<"打开文件失败,请重新运行!"<0;i++,count++)
{
itoa(i,buf,10);
string fullname=path+".part"+buf;
cout<<"正在生成"<0)
{
if(current_size>=block_size)
{
in.read(buf,block_size);
}
else
{
in.read(buf,current_size);
}
if(in.gcount()==0)
{
i=-1;
break;
}
current_size -=in.gcount();
sum +=in.gcount();
fout.write(buf,in.gcount());
}
fout.close();
}
out<<"echo 本批处理文件共分成 "<=1000000000)
{
out<=1000000)
{
out<=1000)
{
out<