• 文件解压压缩


    调用了7z.exe。首先先搜索硬盘内的压缩文件,没有搜索到直接进行下载(有待添加)。其次,进行文件的压缩和解压...部分功能有待完善,代码没有任何技术含量,无非是保持对技术的热爱。

    #include <stdio.h> 
    #include <stdlib.h> 
    #include <windows.h> 
    #include <string.h> 
    #include <time.h> 
    const int LEN = 1024;
    
    void ShowTime();
    void Search();
    void Compress();
    void Decompress();
    void Help();
    
    int main() 
    {	
    	int n = 0;
    	while(n!=5)
    	{
    		ShowTime();
    		printf("               =================================================          \n");
    		printf("               +++++++++++++++++++++++++++++++++++++++++++++++++          \n");
    		printf("               1++++++++++++++++++++Search+++++++++++++++++++++1          \n");
    		printf("               2+++++++++++++++++++Compress++++++++++++++++++++2          \n");
    		printf("               3+++++++++++++++++++Decompress++++++++++++++++++3          \n");
    		printf("               4+++++++++++++++++++++Help++++++++++++++++++++++4          \n");
    		printf("               5+++++++++++++++++++++Exit++++++++++++++++++++++5          \n");
    		printf("               +++++++++++++++++++++++++++++++++++++++++++++++++          \n");
    		printf("               =================================================          \n");
    
    		printf("请选择操作类型:\n");
    		scanf("%d",&n);
    		switch(n)
    		{
    		case 1 : Search();break;
    		case 2 : Compress();break;
    		case 3 : Decompress();break;
    		case 4 : Help();break;
    		case 5 : return 0;break;
    		default : printf("输入错误\n");
    
    		}
    	}
    	return 0; 
    }
    
    void ShowTime()
    {
    	time_t now;
    	now = time(NULL);
    	printf("                         %s", ctime(&now)); 
    	Sleep(1000);
    	//system("cls");
    }
    
    void DirectoryList(LPCSTR Path)
    {
    	WIN32_FIND_DATA FindData;
    	HANDLE hError;
    	int FileCount = 0;
    	char FilePathName[LEN];
    
    	char FullPathName[LEN];
    	strcpy(FilePathName, Path);
    	strcat(FilePathName, "\\*.*");
    	hError = FindFirstFile(FilePathName, &FindData);
    	if (hError == INVALID_HANDLE_VALUE)
    	{
    		printf("搜索失败!");
    		return;
    	}
    	while(::FindNextFile(hError, &FindData))
    	{
    		if (strcmp(FindData.cFileName, ".") == 0 
    			|| strcmp(FindData.cFileName, "..") == 0 )
    		{
    			continue;
    		}
    
    		wsprintf(FullPathName, "%s\\%s", Path,FindData.cFileName);
    		FileCount++;
    		printf("\n%d  %s  ", FileCount, FullPathName);
    
    		if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    		{
    			printf("<Dir>");
    			DirectoryList(FullPathName);
    		}
    	}
    }
    
    void Search()
    {
    	char path[LEN];
    	printf("\nplease input the file Directory\n");
    	scanf("%s",path);
    	DirectoryList(path);
    }
    
    void Compress()
    {
    	char filename[100] = {'\"'};
    	char cmd[300] = "7z.dll a ";
    	//DOS下进入有空格文件夹需要加双引号
    	printf("\nplease input the file name\n");
    	scanf("%s", filename);
    	strcat(cmd, "output ");//生成名为output压缩文件
    	strcat(cmd, filename);//要压缩的文件名
    	system(cmd); 
    	//system("cls"); 
    	//cmd 命令最后是这样的:"C:\Program Files\WinRAR\winrar" a output filename
    	//其中a是程序运行的参数 output是压缩包文件名 filename是输入的文件名
    	//rar命令的语法请参照rar帮助文档
    	printf("压缩完成!!\n");
    	Sleep(2000);
    }
    
    
    void Decompress()
    {
    	char filename[100] = {'\"'};
    	char cmd[300] = "7z.dll e ";
    	printf("\nplease input the file name\n");
    	scanf("%s", filename);
    	strcat(cmd, filename);
    	system(cmd); 
    	printf("解压完成!!\n");
    	Sleep(2000);
    }
    
    void Help()
    {
    	char cmd[300] = {0};
    	strcpy(cmd,"7z.dll -h");
    	system(cmd);
    	Sleep(2000);
    }


  • 相关阅读:
    使用pymouse模块时候报错No module named 'windows'
    解决PIL透明的图片放在新图片上报错
    解决PIL切圆形图片存在锯齿
    常见金融术语-帮助更好的理解金融业务需求
    FastJson序列化时过滤字段(属性)的方法总结
    数据库事务4种隔离级别及7种传播行为
    硬件网络接口规范
    「题解」P5906 【模板】回滚莫队&不删除莫队
    「学习笔记」优美的暴力——莫队
    2017 NOIp提高组 DAY2 试做
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5835257.html
Copyright © 2020-2023  润新知