免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3414 | 回复: 5
打印 上一主题 下一主题

[C] c语言有目录拷贝和遍历的函数吗?是否支持中文目录的整个拷贝? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-29 00:39 |只看该作者 |倒序浏览
c语言有目录拷贝和遍历的函数吗?是否支持中文目录的整个拷贝?

论坛徽章:
0
2 [报告]
发表于 2004-10-29 02:06 |只看该作者

c语言有目录拷贝和遍历的函数吗?是否支持中文目录的整个拷贝?

调用系统命令不好吗?
纯C语言没有这样的函数.有的也是各个系统扩充的.还不如调用系统命令呢.

论坛徽章:
0
3 [报告]
发表于 2004-10-29 18:15 |只看该作者

c语言有目录拷贝和遍历的函数吗?是否支持中文目录的整个拷贝?

嗯,看来也只能用系统调用了!
楼上对c的常驻内存有没有什么研究?
贴点资料看看也可以!

论坛徽章:
0
4 [报告]
发表于 2004-10-29 20:50 |只看该作者

c语言有目录拷贝和遍历的函数吗?是否支持中文目录的整个拷贝?

nftw(),ftw()是用来遍历目录树的.

但不知能支持中文不?

想必一定支持,可以试试!!

论坛徽章:
0
5 [报告]
发表于 2004-10-29 23:34 |只看该作者

c语言有目录拷贝和遍历的函数吗?是否支持中文目录的整个拷贝?

常驻内存?dos?很久很久很久以前......现在,早忘了......

论坛徽章:
0
6 [报告]
发表于 2004-10-30 16:20 |只看该作者

c语言有目录拷贝和遍历的函数吗?是否支持中文目录的整个拷贝?

自编的一个函数:
/**************************************************************************
* 删除目录树
* BOOL DelFileTree(LPCTSTR sSourceDir, BOOL lReserveDir)
* 参数:
*    IfValidUser - 检验合法使用字符串
*    sDir - 目录名
* 返回值:
*    TRUE  - 正确
*    FALSE - 出错
*************************************************************************/
BOOL DelFileTree(LPCTSTR sSourceDir, BOOL lReserveDir=FALSE)
{
        struct _finddata_t c_file;
        long hFile;

        CString bstr, sFiles;
        sFiles.Empty ();
        sFiles += sSourceDir;
        sFiles.TrimLeft ();
        sFiles.TrimRight ();
       
        int nLen = sFiles.GetLength ();
        if (sFiles.GetAt (nLen-1) != 92)
                sFiles += "\\";

        sFiles += "*.*";

        if( (hFile = _findfirst( LPCTSTR(sFiles), &c_file )) == -1 )
                ;
        else
        {
                if ( (c_file.attrib & _A_SUBDIR) )        // Is Directory
                {
                        if ( ! (strcmp(c_file.name, "."==0 || strcmp(c_file.name, ".." == 0) )
                        {
                                sFiles.Empty ();
                                sFiles += sSourceDir;
                                sFiles += "\\";
                                sFiles += c_file.name;
                                DelFileTree(LPCTSTR(sFiles), FALSE);
                        }
                }
                else
                {
                        sFiles.Empty ();
                        sFiles += sSourceDir;
                        sFiles += "\\";
                        sFiles += c_file.name;
                        SetFileAttributes(LPCTSTR(sFiles), FILE_ATTRIBUTE_NORMAL);
                        DeleteFile(LPCTSTR(sFiles));
                }
               
                while( _findnext( hFile, &c_file ) == 0 )
                {
                        if ( (c_file.attrib & _A_SUBDIR) )        // Is Directory
                        {
                                if ( ! (strcmp(c_file.name, "."==0 || strcmp(c_file.name, ".." == 0) )
                                {
                                        sFiles.Empty ();
                                        sFiles += sSourceDir;
                                        sFiles += "\\";
                                        sFiles += c_file.name;
                                        DelFileTree(LPCTSTR(sFiles), FALSE);
                                }
                        }
                        else
                        {
                                sFiles.Empty ();
                                sFiles += sSourceDir;
                                sFiles += "\\";
                                sFiles += c_file.name;
                                SetFileAttributes(LPCTSTR(sFiles), FILE_ATTRIBUTE_NORMAL);
                                DeleteFile(LPCTSTR(sFiles));
                        }
                }
                _findclose( hFile );
        }

        if (!lReserveDir)                // 如果不保留该目录,则删除
        {
                SetFileAttributes(sSourceDir, FILE_ATTRIBUTE_NORMAL);
                RemoveDirectory(sSourceDir);
        }
        return TRUE;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP