免费注册 查看新帖 |

Chinaunix

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

求助:关于文件FIND及COPY的问题(附图及代码) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-14 13:21 |只看该作者 |倒序浏览
实在不好意思,昨天晚上用手机发了一篇求助贴,我是用手机发的,(可能是软件的原因吧,版面很乱,我也是刚用电脑上网看到的,给热心的朋友带了不便,我先说声对不起!)因为我的网络是用手机连电脑上的CMWAP,不知道为什么,我在电脑上登录不了坛子,所以只能用手机来发了。我将源码打了包,并截了图,希望大家给我点帮助   具体的问题是我只能用这段代码找到根目录里面的指定文件,而在子目录里面的文件却找不到,我昨天看了一天的代码都不知道问题所在,希望大家能够帮一下我!

源码图.jpg (123.77 KB, 下载次数: 25)

图

论坛徽章:
0
2 [报告]
发表于 2007-04-14 13:39 |只看该作者

源代码函数打包

源代码函数打包

源码函数.rar

503 Bytes, 下载次数: 32

源代码函数打包

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
3 [报告]
发表于 2007-04-14 18:19 |只看该作者

  1. tempFileFind.Format("%s\\*.doc",dir);
复制代码

这句看来是根据提供的参数及格式化字符串生成一个文件匹配模式,然后依次读取。那么,在 dir 目录下面有名字匹配 *.doc 这种模式的目录么?再参考楼主在这一句后面的注释,应该就是 “%s\\*.doc” 本身的问题了。

希望这些有帮助。

论坛徽章:
0
4 [报告]
发表于 2007-04-14 19:25 |只看该作者
肯定在子目录里有这些文件了,我想也可能是这句有错误,但是我使终不知道错在哪。格式化的目录加文件名这本来就是常用表达了,可为什么不行呢?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
5 [报告]
发表于 2007-04-14 19:41 |只看该作者
原帖由 unixnovice 于 2007-4-14 19:25 发表
肯定在子目录里有这些文件了,我想也可能是这句有错误,但是我使终不知道错在哪。格式化的目录加文件名这本来就是常用表达了,可为什么不行呢?


看来你根本没有仔细看我的回复……

我以 Unix 下 Shell 的文件名匹配为例再仔细说下:
模式 /* 可以匹配到目录 / 下的所有文件(但仅仅是该目录下的文件,不包括其子目录中的),例如说 /a、/b 等等,但如果 /b 本身是目录的话,这个模式是匹配不到 /b 下面的文件的。一般来说,文件名的模式匹配是不递归的(要不然你的这个函数也就没有必要在碰到子目录的时候进行递归调用了)。

希望这些有帮助。

论坛徽章:
0
6 [报告]
发表于 2007-04-14 19:44 |只看该作者
原帖由 MMMIX 于 2007-4-14 19:41 发表


看来你根本没有仔细看我的回复……

我以 Unix 下 Shell 的文件名匹配为例再仔细说下:
模式 /* 可以匹配到目录 / 下的所有文件(但仅仅是该目录下的文件,不包括其子目录中的),例如说 /a、/b 等等,但如果 /b 本身是目录的话,这个模式是匹配不到 /b 下面的文件的。一般来说,文件名的模式匹配是不递归的(要不然你的这个函数也就没有必要在碰到子目录的时候进行递归调用了)。

希望这些有帮助。  


看到代码中 ::CopyFile()、CString 类等用法,我下意识地想到,这是否是 MFC 程序设计?

.

论坛徽章:
0
7 [报告]
发表于 2007-04-14 20:41 |只看该作者
这就是一个Mfc! 明白了一些了,那请问那我这段程序应该怎么写呢才能将所有目录中的doc考出来呢?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
8 [报告]
发表于 2007-04-14 21:30 |只看该作者
原帖由 unixnovice 于 2007-4-14 20:41 发表
这就是一个Mfc! 明白了一些了,那请问那我这段程序应该怎么写呢才能将所有目录中的doc考出来呢?


  1. tempFileFind.Format("%s\\*.doc",dir);
复制代码


把这句中的 .doc 去掉,然后在代码中判断文件名的后缀。当然,你也可以给 CopyFile 增加一个参数用来指定要拷贝文件的后缀。如果没有其他顾虑的话,显然后一种方式更可取。

论坛徽章:
0
9 [报告]
发表于 2007-04-14 21:41 |只看该作者

回复 8楼 MMMIX 的帖子

.

在这里我提一下关于 UNIX、Microsoft Windows 两类系统中能匹配 “所有文件” 的统配符的区别。

对于 UNIX,匹配所有文件应该将 * 与 .* 连用。因为仅仅 * 是无法匹配到以 . 开头的文件的。
对于 Windows,用 *.* 就行了。

为什么呢?我们知道,Windows 所用的 FAT、NTFS 等文件系统,在定义文件名字段时,特意包含了基本名和扩展名两个字段。于是,文件的名称中必然有个 .,而这个 . 通常不显示出来。此处 . 的实质是基本名与扩展名的分隔符。UNIX 不讲究这些,不区别对待基本名与扩展名,而在 UNIX 中有个习惯,就是把用 . 开头的文件、目录当成 “隐藏文件/目录”。知道了这些,我们就不难明白,为什么要在两类系统上用不同的统配符匹配所有文件/目录了。

.

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
10 [报告]
发表于 2007-04-14 21:56 |只看该作者
原帖由 langue 于 2007-4-14 21:41 发表
.

在这里我提一下关于 UNIX、Microsoft Windows 两类系统中能匹配 “所有文件” 的统配符的区别。

对于 UNIX,匹配所有文件应该将 * 与 .* 连用。因为仅仅 * 是无法匹配到以 . 开头的文件的。
对于 Window ...


嗯,可移植性,兼容各种标准、各种实现,等等等等。这些会把代码搞的很复杂。晚上想确认下 clokc_t 在我系统上的类型,一通好翻,绕了 N 道,最后才找到。还是 Plan 9 的编程环境简单:系统调用和库函数的手册都在第二节,头文件也就那么几个,要找什么定义一翻就着……

跑题了跑题了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP