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