⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 huffman 压缩算法 支持文件夹的压缩与解压
💻 CPP
字号:
// huffman.cpp : Defines the entry point for the console application.
//

#include <iostream>
#include <cstdlib>
#include <tchar.h>
#include "huffman.h"
#include "main.h"
#include "listallfile.h"
#include "merge.h"
int _tmain(int argc, _TCHAR* argv[])
{


    if (argc != 4)
    {
        wprintf(L"  bad arguments.\n");
		wprintf(L"  %s -e sourfile destfile\n",argv[0]);
        wprintf(L"  %s -d sourfile destfile\n",argv[0]);
        exit(1);
    }


    else
    {
      if (!wcscmp(argv[1], L"-e"))
        {
			if (ListAllFile(argv[2])==0)
			{
			 LPTSTR newname;
              wprintf(L"DIRECTORY\n");
              for (int i=0;i<nCount;i++)
			     {
                      newname=(LPTSTR) malloc (BUFSIZE);
					  StringCbCopyN (newname, BUFSIZE, namelist[i] , 256);
					  StringCbCatN (newname, BUFSIZE, TEXT(".var"), 4*sizeof(TCHAR));
                      CompressHuffman (namelist[i] ,newname);
					  MergeFile(newname,argv[3]);
					  DeleteFile(newname);   
				       _tprintf (TEXT("%s \n"), namelist[i]);
					   free (newname);
			     }
			  }
			else
			{
			    LPTSTR newname=(LPTSTR) malloc (BUFSIZE);
				StringCbCopyN (newname, BUFSIZE, argv[2] , 256);
			    StringCbCatN (newname, BUFSIZE, TEXT(".var"), 4*sizeof(TCHAR));
				CompressHuffman (argv[2] ,newname);
               MergeFile(newname,argv[3]); 
               DeleteFile(newname); 
			   free (newname);
			}
        }
        else if (!wcscmp(argv[1], L"-d"))
        {
			SplitFile(argv[2] ,argv[3]);
            ListAllFile(argv[3]);
            LPTSTR newname;
			for (int i=0;i<nCount;i++)
			     {
                      newname=(LPTSTR) malloc (BUFSIZE);
					  int len=wcslen(namelist[i]);
					  wprintf(L"%s:%d\n", namelist[i],len);
					  StringCbCopyN (newname, BUFSIZE, namelist[i] , (len-4)*sizeof(TCHAR));
					  wprintf(L"%s\n", newname);
                      DecompressHuffman (namelist[i] ,newname);
					  DeleteFile(namelist[i]);   
					  _tprintf (TEXT("%s  DEL\n"), namelist[i]);
					   free (newname);
			     }
        }
        else
        {
            wprintf(L"bad argument %s.\n", argv[4]);
            exit(1);
        }


    }

    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -