| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4065 人关注过本帖
标题:有没有文件大小函数,与更新时间函数
取消只看楼主 加入收藏
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
有没有文件大小函数,与更新时间函数
请教各位大佬:
在下列代码中,有文件名,文件类型,完整路径,分别用juststem()、justext()、justpath()找出来,那么有没有找出文件大小、与更新时间的代码?
IF ! laSub[i,1]=="." AND ! laSub[i,1]==".."
        DECLARE taFileArray[ALEN(taFileArray)+1]
        taFileArray[ALEN(taFileArray)]=tcPath+laSub[i,1]
        INSERT INTO temp (文件名,文件类型,完整路径) VALUES (juststem(tcPath+laSub[i,1]),justext(tcPath+laSub[i,1]),justpath(tcPath+laSub[i,1]))
    ENDIF
搜索更多相关主题的帖子: 时间 更新 函数 文件 大小 
2020-06-14 20:50
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 2楼 吹水佬
那么文件大小的函数呢?
2020-06-14 21:43
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 4楼 sdta
加上这两个函数,不知道怎么回事就不行了?
SET SAFETY OFF
*CREATE TABLE temp (文件名  c(56),文件类型 c(6),完整路径 c(42),文件日期 t)
CREATE TABLE temp (文件名  c(56),文件类型 c(6),完整路径 c(42),文件日期 t, 文件大小 n)
DECLARE aReturnDirectory(1) &&建立返回目录数组
nCount=FindDirectory(@aReturnDirectory,"D:\读书")
BROWSE

FUNCTION  FindDirectory
lPARAMETERS taDireArray,tcPath,lnReCurLevel,InReFileDate,InReTime &&接收数组名、路径名、递归层数(函数内部用)参数
LOCAL laSub[1],i,lnSubDirCount,lnLen
IF PARAMETERS()<3 &&第一次调用该程序时不会传递 lnReCurLevel 参数
    lnReCurLevel=0
ENDIF
IF RIGHT(tcPath,1)# "\"
    tcPath=tcPath+"\"
ENDIF
IF lnReCurLevel=0
    DECLARE taFileArray[1] &&存放文件数组
    DECLARE taDireArray[1] &&存放目录数组
    If DIRECTORY(tcPath) &&只需在第 0 层检查目录是否存在
        taDireArray[1]=tcPath
    ELSE
    RETURN 0
    ENDIF
ELSE
    DECLARE taDireArray[ALEN(taDireArray)+1]
    taDireArray[ALEN(taDireArray)]=tcPath
ENDIF
lnSubDirCount=ADIR(laSub,tcPath+"*.*","DHS")
FOR i=1 TO lnSubDirCount
IF "D" $ laSub[i,5] AND ! laSub[i,1]=="." AND ! laSub[i,1]==".."
    *!* 递归调用 FindDirectory()函数
    FindDirectory(@taDireArray,tcPath+laSub[i,1],lnReCurLevel+1)
ELSE
    IF ! laSub[i,1]=="." AND ! laSub[i,1]==".."
        DECLARE taFileArray[ALEN(taFileArray)+1]
        taFileArray[ALEN(taFileArray)]=tcPath+laSub[i,1]
*       INSERT INTO temp (文件名,文件类型,完整路径) VALUES (juststem(tcPath+laSub[i,1]), justext(tcPath+laSub[i,1]),justpath(tcPath+laSub[i,1]))
        INSERT INTO temp (文件名,文件类型,完整路径,文件日期,文件大小) VALUES (juststem(tcPath+laSub[i,1]),;
        justext(tcPath+laSub[i,1]),justpath(tcPath+laSub[i,1]),fdate(tcPath+laSub[i,1]),adir(tcPath+laSub[i,1]))
    ENDIF
ENDIF
ENDFOR
RETURN ALEN(taFileArray)
2020-06-14 22:31
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 6楼 吹水佬
换成FSIZE( )仍然不行。
运行显示“文件不存在”
2020-06-15 09:10
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
这段代码是“瓜瓜1990”在【如何将D盘下所有文件按要求写入表文件中】提供的。
说实话,我水平不高,并不太理解其余代码的意义,只是增加【文件日期,文件大小】两个参数,其余哪些代码需要跟进,我不清楚。
2020-06-15 10:42
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
现在情况是:日期出来了,大小也出来了,但是只给出5个文件就不干了!——原来的代码可以将该目录中的文件全部给出。
2020-06-15 10:51
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 11楼 sdta
用adir(),结果一条记录都没有啊?
    IF ! laSub[i,1]=="." AND ! laSub[i,1]==".."
        DECLARE taFileArray[ALEN(taFileArray)+1]
        taFileArray[ALEN(taFileArray)]=tcPath+laSub[i,1]
        INSERT INTO temp (文件名,文件类型,完整路径,文件日期,文件大小) VALUES (juststem(tcPath+laSub[i,1]),;
        justext(tcPath+laSub[i,1]),justpath(tcPath+laSub[i,1]),fdate(tcPath+laSub[i,1]),adir(tcPath+laSub[i,1]))
    ENDIF
2020-06-15 10:54
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 14楼 sdta
您的代码运行没有障碍,只是没有录入任何数据,而且退程序出之后,没有留下DBF。
2020-06-15 11:54
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 15楼 瓜瓜1990
瓜瓜1990,您好!
我注意到,您定义的代码
lPARAMETERS taDireArray,tcPath,lnReCurLevel,InReTime,InReSize &&接收数组名、路径名、递归层数(函数内部用)参数
后面都有安排。
我试图使用InReTime,InReSize 来定义文件时间,文件大小,但是不知道随后怎么安排?还请您指点
2020-06-15 12:09
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 18楼 sdta
我已经改了路径。
2020-06-15 12:10
快速回复:有没有文件大小函数,与更新时间函数
数据加载中...
 
   



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

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