cQDIR ;Windows Directory ;cQDIR;
Q
;
date ;date
N %H,%J,%R S %H=1+$H,%J=%H\1461,%R=%H#1461,DJ=%J*4+1841+(%R\365),DD=%R#365,DM=1 I %R=1460 S DD=365,DJ=DJ-1
F %J=31,(%R>1154)+28,31,30,31,30,31,31,30,31,30 Q:%J'
"_INFO),$ZT="ERR"
S ER=$$OR^cQFILE(INFO) I ER Q "3,could not open tempfile"
F I=1:1 S ER=$$RF^cQFILE(INFO,.K) Q:ER D
. S V(I,0)=DIR_K F J=1:1:4 S V(I,J)=""
. S E=$$FAT^cQFILE(V(I,0),.J) I 'E S V(I,1)=J,J=.5
. F K=1:1:15 S J=J*2 I ($P(V(I,1),",")\J#2)=1 S V(I,1)=V(I,1)_","_ATT(J)
. S E=$$FS^cQFILE(V(I,0),.J) I 'E S:J<0 J=0 S V(I,2)=J
. S E=$$FCD^cQFILE(V(I,0),.J) I 'E S V(I,3)=J
. S E=$$FMD^cQFILE(V(I,0),.J) I 'E S V(I,4)=J
S E=$$CF^cQFILE(INFO)
I ER'=99 Q "4,End Of File of tempfile not reached"
DIRZ Q 0
;
RET(R) ;Readtest of file R
N ER,OK,K
S R=$G(R) I '$L(R) S OK="1\No file was given" Q OK
S R=$TR(R,"/","\")
S ER=$$TST^cQFILE(R) I ER S OK=ER_",Cannot find file "_R Q OK
S ER=$$OR^cQFILE(R) I ER S OK=ER_",Cannot open file "_R Q OK
S ER=$$RF^cQFILE(R,.K) I ER S OK=ER_",Cannot read from file "_R,ER=$$CF^cQFILE(R) Q OK
S ER=$$CF^cQFILE(R)
RETZ Q 0
;
WRT(R) ;Writetest in directory R
N ER,OK
S R=$G(R) I '$L(R) S OK="1,No directory given" Q OK
S R=$TR(R,"/","\") I $E(R,$L(R))'="\" S R=R_"\"
S ER=$$TST^cQFILE(R) I ER S OK=ER_",Cannot find directory "_R Q OK
S R=R_"test"_$j_".txt"
S ER=$$OW^cQFILE(R) I ER S OK=ER_",Cannot open file "_R Q OK
S ER=$$WF^cQFILE(R,"write test") I ER S OK=ER_",Cannot write in file "_R,ER=$$CF^cQFILE(R) Q OK
S ER=$$CF^cQFILE(R)
S ER=$$DEL^cQFILE(R)
WRTZ Q 0
;
FFILE(F,R,S,V) ;Find file F in directory R, if S also in subdirectories
; put list in variable V
;; F is file.ext
;; R can be x:\dir or \\system\share\dir
;; S is either 0 (do not search subdirs) or 1 (search in subdirs)
;; V has to be passed by reference,
;; Ex.: S E=$$FFILE(file,dir,1,.A) puts
;; the error in E
;; the full path of the dir/file into A(seq#,0)
;; the file attributes into A(seq#,1)
N A,ER,I
S F=$G(F),R=$TR($G(R),"/","\"),S=$G(S,0) I '$L(F) W "3,illegal filename"
K A S ER=$$DIR(R,.A) I ER Q ER
S I=""
F S I=$O(A(I)) Q:I="" D I ER Q
. I S,$ZCONVERT(A(I,1),"L")["directory" S ER=$$FFILE(F,A(I,0),S,.V) Q
. I $ZCONVERT(A(I,1),"L")'["directory",$ZCONVERT($P(A(I,0),"\",$L(A(I,0),"\")),"L")=$ZCONVERT(F,"L") S V=$G(V)+1,V(V)=A(I,0)
;
FFILEZ Q 0
;
TOUCH(F) ;Touch file F
;; Change File modification date & time
N T S T=$E($$INFO^cQ14)_":\datam\menu\touch.exe"
I $$TST^cQFILE(T) Q "1,Program touch.exe not found"
S ER=$$JW^cQFILE(T_" """_F_"""")
TOUCHZ Q ER
;
DB(X) ;Put non-db files into X (not cache.dat, cache.ext or cache.lck)
N A,B,C,I,K K X
D DIR^cQDIR($E($ZU(86))_":\DataM\Database\",.A) D MV(.A,.C)
S I=""
F S I=$O(C(I)) Q:I="" D
. I C(I,1)'["Directory" M B($O(B(""),-1)+1)=C(I) Q
. D DIR^cQDIR(C(I,0),.A) D MV(.A,.C)
K A,C
F S I=$O(B(I)) Q:I="" D
. S K=$ZCONVERT($P(B(I,0),"\",$L(B(I,0),"\")),"U")
. I "\CACHE.DAT\CACHE.EXT\CACHE.LCK\"[("\"_K_"\") K B(I)
. E S X($O(X(""),-1)+1)=B(I,0)
DBZ Q
;
MV(X,Y) N J S J=""
F S J=$O(X(J)) Q:J="" M Y($O(Y(""),-1)+1)=X(J)
MVZ Q
;
ATT S ATT(1)="Read-only"
S ATT(2)="Hidden"
S ATT(4)="System"
S ATT(8)=""
S ATT(16)="Directory"
S ATT(32)="Archive"
S ATT(64)="Device"
S ATT(128)="Normal"
S ATT(256)="Temporary"
S ATT(512)="Sparse File"
S ATT(1024)="Reparse Point"
S ATT(2048)="Compressed"
S ATT(4096)="Offline"
S ATT(8192)="Not Content Indexed"
S ATT(16384)="Encrypted"
ATTZ Q
;
ERR U 0 S ER=0 I $L(R) C R
I $ZE["" S ER=99
I $ZE["" S ER="11,"_$ZE
I $ZE["" S ER=12_","_$ZE
I $ZE["" S ER=13_","_$ZE
I $ZE["" S ER=14_","_$ZE
ERRZ Q ER
;
ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9