判断磁盘空间
来源:互联网 发布:阿里云邮箱在线客服 编辑:程序博客网 时间:2024/05/22 17:03
bool MainWindow::outputDiskSpace(const QString& strDestination,const QModelIndexList& lstConvertItems)
{
FfVideoModel* pFfVideoModel = ui->ffVideoForm->ffVideoModel();
FfVideoModelItem* pItem = NULL;
// 选出下一个可用项
int v=0,a=0,l_time=0;
unsigned __int64 total=0;
for (int i=0;i<lstConvertItems.size();i++)
{
QModelIndex index = lstConvertItems.at(i);
pItem = pFfVideoModel->itemByModelIndex(index);
int m_nOutputIndex=0;
// 通过output决定
COOutput* pOOutput = pItem->output(m_nOutputIndex, true);
CIInput* pIInputs = NULL;
int nInputCount =pItem->inputList(NULL, 0);
pIInputs = new CIInput[nInputCount];
pItem->inputList(pIInputs, nInputCount);
if (!g_pSettings->isRegistered())
{
// 非注册版本转换限制
for (int i = 0; i < nInputCount; i++)
{
double dConvertLength = pIInputs[i].trimLength;
if (dConvertLength < 0.5)
dConvertLength = pIInputs[i].mi.duration;
if (dConvertLength > 300.0)
pIInputs[i].trimLength = 300.0;
else
pIInputs[i].trimLength = dConvertLength / 2;
}
}
int nConvertLength = 0;
for (int i = 0; i < nInputCount; i++)
{
nConvertLength += pIInputs[i].trimLength;
}
l_time=nConvertLength; // video or audio 播放时间长度
a=pOOutput->profile.audioBitrate; // audio bitrate
v=pOOutput->profile.videoBitrate; // video bitrate
total+=(v+a)/8*l_time;
}
unsigned __int64 i1,i2,i3;
char chBuf[100];
GetDiskFreeSpaceEx( _TEXT("c: "),(PULARGE_INTEGER)&i1,(PULARGE_INTEGER)&i2,(PULARGE_INTEGER)&i3);
i2 = i2 >> 20; //磁盘空间剩余容量
//转换后的大小 以MB为单位
total = total >> 20;
QDir dirDestination(strDestination);
if(i2-total<2)
{
if (AkMessageBox::question(this, g_pProductInfo->productName(), tr("/"%1/" disk space may be insufficient. Are you sure to convert?").arg(dirDestination.canonicalPath ().left(3)), QDialogButtonBox::Ok | QDialogButtonBox::Cancel) != QDialogButtonBox::Ok)
return false;
else
return true;
}
else
{
return true;
}
}
- 判断磁盘空间
- 一个判断磁盘空间的脚本
- 磁盘空间
- 磁盘空间
- 获得磁盘空间
- 分配磁盘空间
- 记录磁盘空间
- 读取磁盘空间
- 磁盘空间满
- du磁盘空间
- 磁盘空间丢失
- 磁盘空间信息
- 磁盘空间查询
- 扩容磁盘空间
- GetDiskFreeSpaceEx磁盘空间
- 获取磁盘空间
- 磁盘空间检查
- Linux磁盘空间
- NTOP
- Mercurial与TortoiseHg使用入门教程(转)
- KB和Kb
- 解决eclipse开发的android工程在linux上编译不过的@Override问题
- 发个博测试
- 判断磁盘空间
- WebService cxf视频教程
- 简单说说驱动程序设计的入门
- Lua与CSharp间的通信
- Linux 内存管理综述
- 希望能让我找到一份好的工作
- Revit 内部比较数据的公差: 1e-9
- CMMB在Android平台上的实现步骤简介
- struts1.x小笔记