首页 > 解决方案 > 为什么这个 C 程序填充驱动器 C:\?

问题描述

下面的代码是一个压缩一些的 C 程序。他们正在共享文件夹,有些大约有 6G。但是C:/盘只有4G空闲,今天,每次脚本运行都会加载,相信是临时文件的原因。

但是我已经将Winrar中临时文件的文件夹更改为选项>设置>路径>临时文件文件夹:“E:\ temp”。

会发生什么?看,代码基本上是这样的(一些片段,你只需更改要压缩的目录,删除即可汇总):

#include <iostream>
#include <ctime>
#include <stdio.h>
#include <string.h>
#include <cstdlib>

using namespace std;

int main(){

    char comando [150]={""};

    char ano [3];
    char mes [3];
    char dia[3];
    char data[15] ={""};
    char pasta[15] = {""};
    char *Pont_Pasta = pasta;

    unsigned long tempo_Espera = 100000;

    time_t t = time(0);
    struct tm * now = localtime (& t);
    sprintf(ano,"%i",now->tm_year+1900);
    sprintf(mes,"%i",now->tm_mon+1);
    sprintf(dia,"%i",now->tm_mday);

    strcat(data,"_");
    strcat(data,ano);
    strcat(data,"_");
    strcat(data,mes);
    strcat(data,"_");
    strcat(data,dia);

 strcat(comando,"start c:\\arquiv~1\\winrar\\rar a E:\\backup\\aquisicao\\aquisicao");strcat(comando,data);strcat(comando,".rar E:\\aquisicao");
    system(comando);
    strcpy(comando,"");
    _sleep(tempo_Espera);

 (...)

 return 0;    
}

@phuclv 我没有创建此代码,但我知道 strcp 用于清除字符串命令。至于日期线,我是这样写的:

time_t rawtime;
struct tm * timeinfo;
char data[30];

time (&rawtime);
timeinfo = localtime(&rawtime);

strftime(data,30,"_%Y%m%d",timeinfo);

标签: compressioncwinrar

解决方案


RAR.EXE程序调用的命令行C不使用GUI 程序中的temp-files设置。 您需要使用命令行参数为 RAR.EXE 指定临时文件夹。 我没有 WinRAR 的副本可供我使用,但或者应该为您提供要使用的参数的信息。WinRAR.EXE

RAR -hRAR -?


推荐阅读