久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2023信創(chuàng)獨角獸企業(yè)100強
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

改變指定的文件和文件夾的屬性

2004-02-15 eNet&Ciweek

  ////查找并修改符合條件的文件和文件夾

    HANDLE handle=FindFirstFile
    ( FileName, &fileinfo );
    if(handle==INVALID_HANDLE_VALUE)
    return 0;
    do{
    if(fileinfo.cFileName[0]=='.')
    continue;
    strcpy(allname,pathname);
    strcat(allname,fileinfo.cFileName);

  //檢取文件屬性

  stat=GetFileAttributes(allname);
    if(stat==0xffffffff){
    MessageBox("警告,獲取文件信息時出 錯!!",
    allname,MB_OK MB_
    ICONINFORMATION);
    continue;
    }

  //設置文件屬性

  BOOL tt=SetFileAttributes(allname,0);
    if(!tt){
    MessageBox("警告,文件信息出錯!!",
    allname,MB_OK MB_
    ICONINFORMATION);
    continue;
    }

  HANDLE hd=CreateFile(allname,
    GENERIC_WRITE, FILE_SHARE_WRITE,
    NULL,OPEN_EXISTING,
    FILE_FLAG_BACKUP_SEMANTICS,NULL);
    if(hd!=INVALID_HANDLE_VALUE){
    SYSTEMTIME st[3];
    GetLocalTime(&st[0]);
    st[1]=st[0];st[2]=st[0];
    FILETIME ft[3];
    FILETIME lft[3];
    BYTE ff[3];
    ff[0]=0;ff[1]=0;ff[2]=0;

  //改變文件訪問時間

  if(m_ACCESS){
    ff[0]=1;
    st[0].wDay =m_ADAY;st[0].
    wMonth=m_AMONTH;
    st[0].wYear=m_AYEAR;
    BOOL bb=SystemTime
    ToFileTime(&st[0],&ft[0]);
    bb=LocalFileTime
    oFileTime(&ft[0],&lft[0]);
    }

  //改變文件產(chǎn)生時間

  if(m_CREATE){
    ff[1]=1;
    st[1].wDay=m_CDAY;st[1].
    wHour=m_CHOUR;st[1].
    wMinute=m_CMINUTE;
    st[1].wMonth=m_
    CMONTH;st[1].
    wSecond=m_CSECOND;
    st[1].wYear=m_CYEAR;
    BOOL bb=SystemTime
    ToFileTime(&st[1],&ft[1]);
    bb=LocalFileTime
    ToFileTime(&ft[1],&lft[1]);
    }

  //改變文件修改時間

  if(m_MODIFY){
    ff[2]=1;
    st[2].wDay=m_MDAY;st[2].
    wHour=m_MHOUR;st[2].
    wMinute=m_MMINUTE;
    st[2].wMonth=m_MMONTH
    ;st[2].
    wSecond=m_MSECOND;
    st[2].wYear=m_MYEAR;
    BOOL bb=System
    TimeToFileTime(&st[2],&ft[2]);
    bb=LocalFileTime
    ToFileTime(&ft[2],&lft[2]);
    }

  //改變文件時間

  BOOL tt=SetFile
    Time(hd,ff[1]?&lft[1]:
    NULL,ff[0]?&lft[0]:
    NULL,ff[2]?&lft[2]:NULL);
    if(!tt){
    MessageBox("警告,文件信息出錯!!",
    allname,MB_OK MB_ICONINFORMATION);
    }
    CloseHandle(hd);
    }

  //改變文件屬性

  if(m_PROPERTY){
    if(m_HIDE)
    stat =FILE_
    ATTRIBUTE_HIDDEN;
    else
  stat&=~FILE_
    ATTRIBUTE_HIDDEN;
    if(m_READ)
    stat =FILE_
    ATTRIBUTE_READONLY;

  else

    stat&=~FILE_
    ATTRIBUTE_READONLY;
    if(m_SAVE)
    stat =FILE_
    ATTRIBUTE_ARCHIVE;

  else

  stat&=~FILE_
    ATTRIBUTE_ARCHIVE;
    if(m_SYSTEM)
    stat =FILE_
    ATTRIBUTE_SYSTEM;

  else

  stat&=~FILE_
    ATTRIBUTE_SYSTEM;
  }

  //設置文件屬性

  tt=SetFileAttributes(allname,stat);
    if(!tt){
    MessageBox("警告,文件信息出錯!!",allname,
    MB_OK MB_
    ICONINFORMATION);
    continue;
  }

  //查找并修改當前目錄

  下所有符合條件的文件

  if(stat&FILE_
    ATTRIBUTE_DIRECTORY
    && !bFlag){//m_DIRECTORY
    char temp[128];
    sprintf(temp,"%s%s\\%s",
    pathname,fileinfo.cFileName,filter);

  //遞歸改變該子目錄下的文件

  ChangeTheProperty(temp,1);
    continue;
    }
    }while(FindNextFile( handle, &fileinfo ));
    FindClose(handle);
    return 1;
    }  

  ---- 3、在執(zhí)行更改的按鈕的BN_CLICKED消息處理器中加入以下代碼,這段代碼首先解析了輸入的文件名全路徑,并初始化了filter成員變量:

  UpdateData(TRUE);

    int num=m_FILENAME.GetLength();

    for(int i=num-1;i>=0;i--){
    if(m_FILENAME.GetAt(i)=='\\')
    break;
    }

    if(i!=-1){
    CString ss=m_FILENAME.Right( num-1-i );
    strcpy(filter,ss.GetBuffer(15) );
    ss.ReleaseBuffer();
    ChangeTheProperty
    ( m_FILENAME.GetBuffer(128)) ;
    m_FILENAME.ReleaseBuffer();
    }

  ---- 4、編譯連接后,在文件名編輯框中輸入要改變的文件的帶通配符的全路徑,設置文件的創(chuàng)建修改訪問時間以及只讀隱藏等屬性,點擊該按鈕后執(zhí)行選定的更改操作。

  ---- 三、本編碼在NT4.0平臺,用VC++6.0編譯,效果良好,符合預期。

相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com