文档章节

文件解压压缩

N3verL4nd
 N3verL4nd
发布于 2017/03/25 10:41
字数 464
阅读 2
收藏 0

调用了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);
}


© 著作权归作者所有

N3verL4nd
粉丝 1
博文 379
码字总数 481243
作品 0
朝阳
私信 提问
(五)Linux学习笔记-Linux常用命令-压缩解压

(五)Linux学习笔记-Linux常用命令-压缩解压 压缩解压 以下为Red Hat系列Linux的命令集,我使用的Centos7.5版本。 压缩解压 gzip(压缩文件) gunzip(解压文件) tar(打包目录,常用) zi...

Super_RD
2018/12/06
0
0
Linux 中不同文件的 解压缩 压缩命令 总结

tar 本文列出tar常用命令意思,更多信息,自行 查看 c: 建立压缩档案 x:解压 t:查看内容 r:向压缩归档文件末尾追加文件 u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其...

6点A君
2018/12/23
0
0
linux解压zip、bz、bz2、z、gz、tar(解包)

zip: 压缩: zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>] 解压: unzip [选......

ArlenXu
2016/04/25
162
0
Linux学习笔记(19)

一、压缩打包介绍 压缩完的文件可以节省空间,网络传输时间变短,网络带宽耗费资源变小 windows常见压缩文件:rar zip 7z linux常见压缩文件 zip .gz .bz2 .xz .tar (后缀名只是一个约定) 压...

小新锐
2017/11/09
0
0
Linux压缩和解压命令常见用法

.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压1:gunzip FileName.gz 解压2:gzip -d Fil...

mj4738
2011/11/24
93
0

没有更多内容

加载失败,请刷新页面

加载更多

Blockstack-2 :Blockstack ID注册

本篇文章主要记录Blockstack ID注册的流程; 在介绍注册流程之前,先简单的介绍一下Blockstack ID; 相对于传统互联网来说,Blockstack ID更像是统一的账号系统;即一个账号即可登录和授权所...

Riverzhou
今天
19
0
面试官问:平时碰到系统CPU飙高和频繁GC,你会怎么排查?

处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运...

Java高级架构师n
今天
33
0
面向对象编程

1、类和对象 类是对象的蓝图和模板,而对象是实例;即对象是具体的实例,类是一个抽象的模板 当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定...

huijue
今天
30
0
redis异常解决 :idea启动本地redis出现 jedis.exceptions.JedisDataException: NOAUTH Authentication required

第一次安装在本地redis服务,试试跑项目,结果却出现nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required错误,真是让人头疼 先检查一...

青慕
今天
42
0
Spring 之 IoC 源码分析 (基于注解方式)

一、 IoC 理论 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 二、IoC方式 Spring为IoC提供了2种方式,一种是基于xml...

星爵22
今天
37
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部