[原创]简易的文件粉碎模块

1 篇文章 0 订阅
#include  " windows.h "
#include 
" stdio.h "

#pragma  comment(linker, "/BASE:0x13150000")

/*
函数名    :KillFileName
函数作用:消除指定文件的文件名
参数1    :要操作的文件具体路径
参数2    :覆盖的次数
参数3    :接收更改后的文件名
参数4    :开始时的文件名
返回值  :TRUE 表示成功,否则失败
备注    :把文件名改为类似 a b c   达到消除原文件名的目的
*/

BOOL KillFileName(
char   * pFileName,  int  Repeat , char   * NewFileName, char  FileChar  =   ' a ' )
{
    
char *pPath = new char[100];
    ZeroMemory(pPath,
100);
    
    
char *pOldFileName = new char[100];
    ZeroMemory(pOldFileName , 
100);
    
    
char *pNewFileName = new char[100];
    ZeroMemory(pNewFileName , 
100);
    
    pNewFileName[
0= '/';
    
    
//    char FileChar = 'a';
    
    
int NameLength = strlen(pFileName);
    
    
for(int i = NameLength - 1 ; i >= 0 ;i--)
    
{
        
if'/' == pFileName[i] )
        
{
            pFileName[i] 
= 0;
            strcpy(pPath,pFileName);
            pFileName[i] 
= '/';
            strcpy(pOldFileName,
&pFileName[i]);
            
            
break;
        }

    }

    
//    ZeroMemory(NewFileName,strlen(NewFileName));
    char *tempPath = new char[100];
    ZeroMemory(tempPath,
100);
    
    strcpy(tempPath,pPath);
    
char *tempNewPath = new char[100];
    
char *tempOldPath = new char[100];
    ZeroMemory(tempOldPath,
100);
    ZeroMemory(tempNewPath,
100);
    
    pNewFileName[
1= FileChar;
    
for(i = 0; i < Repeat ; i++)
    
{
        
        
        
        
        
        strcpy(tempNewPath,tempPath);
        strcpy(tempOldPath,tempPath);
        
        strcat(tempOldPath,pOldFileName);
        strcat(tempNewPath,pNewFileName);
        
        MoveFile(tempOldPath,tempNewPath);
        
        ZeroMemory(pOldFileName,
100);
        strcpy(pOldFileName,pNewFileName);
        strcpy(NewFileName,tempPath);
        strcat(NewFileName,pNewFileName);
        
if('z' == ++(pNewFileName[1]))
        
{
            pNewFileName[
1= 'a';
        }

        ZeroMemory(tempNewPath,
100);
        ZeroMemory(tempOldPath,
100);
        
    }

    
    
    
//    printf("pPath = %s, pOldFileName = %s  ",pPath,pOldFileName);
    
    delete []tempNewPath;
    delete []tempOldPath;
    delete []pPath;
    delete []pOldFileName;
    delete []pNewFileName;
    delete []tempPath;
    
return TRUE;
}


/*
函数名    :KillFile
函数作用:粉碎指定文件
参数1    :待粉碎的文件具体路径
参数2    :覆盖文件数据的次数
返回值  :TRUE 表示成功,否则失败
备注    :现为dll的导出函数
*/

extern   " C "  __declspec(dllexport)BOOL KillFile( char   * pFileName, int  Repeat)
{
    
//文件的载入工作在这里开始
    int RepeatNum = Repeat;
    
    HANDLE hFile 
= CreateFile(pFileName,GENERIC_WRITE | GENERIC_READ,NULL,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    
if(INVALID_HANDLE_VALUE == hFile)
    
{
        MessageBox(NULL,
"Has an error on call the CreateFile function","error",0);
        
        
return FALSE;
    }

    HANDLE hMap 
= CreateFileMapping(hFile,NULL,PAGE_READWRITE | SEC_COMMIT,0,0,NULL);
    DWORD LoadSize 
= 0;
    
char* pBuffer = (char *)MapViewOfFile(hMap,FILE_MAP_ALL_ACCESS,0,0,0);
    
if(NULL == pBuffer)
    
{
        MessageBox(NULL,
"Has an error on call the MapViewOfFile function","Error",0);
        
return FALSE;
    }

    
    LoadSize 
= GetFileSize(hFile,NULL);    //取得文件的长度
    
    
//粉碎工作在下面进行
    
    
for(int i = 0 ;i < RepeatNum ; i++)
    
{
        
//写一遍0xff 然后再写一遍0x00
        memset((LPVOID)(pBuffer),0xff,LoadSize);
        ZeroMemory((LPVOID)(pBuffer),LoadSize);
        FlushViewOfFile((LPVOID)(pBuffer),LoadSize);
        
    }

    
    
    
//粉碎文件数据后的收尾工作
    if(FALSE == UnmapViewOfFile((LPVOID)pBuffer))
    
{
        MessageBox(NULL,
"Has an error on call the UnMapViewOfFile function","Error",0);
        
return FALSE;
    }

    
    CloseHandle(hMap);
    CloseHandle(hFile);
    
    
/*    //这里对文件名进行处理
    char *pOldFileName = new char [50];
    char *pNewFileName = new char [50];
    
      ZeroMemory(pOldFileName,50);
      ZeroMemory(pNewFileName,50);
      
        for(i = 0 ; i < 3 ; i++)
        {
        
          }
          
        delete []pOldFileName;
        delete []pNewdFileName;    
    
*/

    
char *NewFileName = new char[100];
    ZeroMemory(NewFileName,
100);
    
if( FALSE == KillFileName(pFileName,Repeat,NewFileName) )
    
{
        //do  somethis about failure with clear file name here
    }

    DeleteFile(NewFileName);
    
//    printf(" NewFileName = %s  ",NewFileName);
    delete []NewFileName;
    
return TRUE;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值