| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 685 人关注过本帖
标题:历遍文件夹中图片问题
只看楼主 加入收藏
dbf永动机
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:21
注 册:2022-8-30
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:10 
历遍文件夹中图片问题
请问,如果有个文件夹,里面还有子文件夹,里面全部都是jpg格式的图片,并且名称的位数都是一样的,由数字和字母组成,如何历遍所有文件夹中图片并且把文件名生成到dbf表中呢?
搜索更多相关主题的帖子: 文件夹 图片 组成 dbf 文件名 
2023-08-16 13:28
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:703
专家分:2760
注 册:2018-3-13
收藏(1)
得分:2 
程序代码:
Close Databases
Create Cursor ttt (file V(50), folder V(200))

cRoot = GetDir('', 'aaaa','bbbbbbb', 64)
If !Empty(cRoot)
    GetFileList(cRoot, 'ttt')
EndIf
Select ttt
Locate
Browse

Function GetFileList(tcRoot, tcTag)
    Local cCurdir, ii
    Local array aFiles[1]
    
    m.cCurdir = Sys(5) + Curdir()
    Set Default To (m.tcRoot)
    For m.ii = 1 to ADir(m.aFiles, '*.jpg')
        Insert into (m.tcTag) Values (m.aFiles[m.ii,1], m.tcRoot)
    EndFor
    For m.ii = 1 to ADir(m.aFiles, '', 'D')
        If !InList(m.aFiles[m.ii,1], '.','..')
            GetFileList(Addbs(m.tcRoot) + m.aFiles[m.ii,1], m.tcTag)
        EndIf
    EndFor
    Set Default To (m.cCurdir)
EndFunc


[此贴子已经被作者于2023-8-16 14:20编辑过]


这家伙很懒,啥也没留下
2023-08-16 14:19
dbf永动机
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:21
注 册:2022-8-30
收藏
得分:0 
回复 2楼 csyx
所以,如何用这个代码实现呢?复制到txt文档?用vfp打开不管用啊
2023-08-16 14:41
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:703
专家分:2760
注 册:2018-3-13
收藏
得分:0 
自然是保存为 prg 并执行,这这这~还用说吗?

这家伙很懒,啥也没留下
2023-08-16 15:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏(1)
得分:0 
遍历磁盘文件
** test.prg
程序代码:
CREATE CURSOR fn (fname M)
getFiles("d:", "*.jpg")
SELECT LEFT(fname,100), fname FROM fn
RETURN

FUNCTION getFiles(cPath, cType)
    CREATE CURSOR fp (fpath M)
    INSERT INTO fp VALUES (ADDBS(cPath))
    DO WHILE !EOF("fp")
        n = RECNO("fp")
        cPath = fp.fpath
        FOR i=1 TO ADIR(arr, cPath+"*.", "RASHD", 1)
            IF !INLIST(arr[i,1],".","..")
                INSERT INTO fp VALUES (cPath + arr[i,1] + "\")
            ENDIF
        ENDFOR
        GO n IN fp
        SKIP IN fp
    ENDDO
    SELECT fp
    SCAN     
        FOR i=1 TO ADIR(arr, fp.fpath+cType, "RASHD", 1)
            IF !INLIST(arr[i,1],".","..") AND !RIGHT(arr[i,5],1) == "D"
                INSERT INTO fn VALUES (fp.fpath + arr[i,1]) 
            ENDIF
        ENDFOR
    ENDSCAN
ENDFUNC

2023-08-16 15:13
dbf永动机
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:21
注 册:2022-8-30
收藏
得分:0 
回复 5楼 吹水佬
图片附件: 游客没有浏览图片的权限,请 登录注册

我把代码放到和文件夹并列的位置,执行之后就是这样,关掉vpf还提示不能关闭vpf。
2023-08-16 15:30
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
以下是引用dbf永动机在2023-8-16 15:30:16的发言:


我把代码放到和文件夹并列的位置,执行之后就是这样,关掉vpf还提示不能关闭vpf。

不能照搬 getFiles("d:", "*.jpg")
是不是没有d盘,或者d盘没有jpg
关掉查询窗口就可以关VFP

[此贴子已经被作者于2023-8-16 15:38编辑过]

2023-08-16 15:37
dbf永动机
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:21
注 册:2022-8-30
收藏
得分:0 
回复 7楼 吹水佬
所以,图片文件夹和代码都放在d盘根目录就行吗?如果放在d盘photo文件夹里面,代码是不是要改成d:/photo   对吗?
2023-08-16 15:42
dbf永动机
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:21
注 册:2022-8-30
收藏
得分:0 
回复 7楼 吹水佬
的确没有d盘,不过我已经掌握了修改路径的关键点,并且成功输出了表格,但是fname里面都是memo,不过我可以从路径里面截取我想要的文件名字段,因为他们的长度都是一样的,截取并不复杂。
2023-08-16 15:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
以下是引用dbf永动机在2023-8-16 15:42:06的发言:

所以,图片文件夹和代码都放在d盘根目录就行吗?如果放在d盘photo文件夹里面,代码是不是要改成d:/photo   对吗?

是遍历指定目录及所有子目录,如果不要遍历子目录,可以加个参数标志作为不循环遍历下一条目录的选择。
2023-08-16 16:11
快速回复:历遍文件夹中图片问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041590 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved