1 Son düzenleyen, konuka (06.12.2010 08:08:11)

Konu: ADIR() komutu sonucu çıkan attributes::xarray[xi,5] sonuçları

kendimce bilgisayarımda çift dosyaları bulan bir program yazarken:
xarray[xi,5] = "....." ne anlama geliyor ?
başka özellikli file attribute veya başka koşul var mı ?

bu dosyaları windows explorer ile kontrol ettim, aslında .tif gibi normal dosyalar

aşağıda programın commanbutton kodu, grdizin, grdosya diye 2 gride ve textdosyasay ve textdizinsay diye 2 textboxcontrole bağlamak gerekiyor...

peşinen teşekkürler

Visual Fox Pro
LOCAL xi,xDir

WITH ThisForm
.grdosyalar.RecordSource=""
.grdizin.RecordSource=""
CREATE CURSOR acaipler (ad C(200), soyad C(10), atribut C(10), boyut N(15), tarih D, dizin C(200))
INDEX ON dizin TAG dizin
INDEX ON boyut TAG boyut
INDEX ON soyad TAG soyad
INDEX ON tarih TAG tarih
INDEX ON ad TAG ad
 
CREATE CURSOR dizinler (dizin C(200), tamam L)
 
CREATE CURSOR dosyalar (ad C(200), soyad C(10), atribut C(10), boyut N(15), tarih D, dizin C(200))
INDEX ON dizin TAG dizin
INDEX ON boyut TAG boyut
INDEX ON soyad TAG soyad
INDEX ON tarih TAG tarih
INDEX ON ad TAG ad
 
.grdosyalar.RecordSource="dosyalar"
.grdizin.RecordSource="dizinler"
STORE 0 TO .textdizinsay.value,.textdosyasay.value
*-----------------------
 
m.xdir=GETDIR()
INSERT INTO dizinler VALUES (m.xdir, .f.)
SELECT dizinler
DO WHIL .t.
  GO TOP
  LOCATE FOR !dizinler.tamam
  IF ! FOUND()
    EXIT
  ENDIF
  REPLACE dizinler.tamam WITH .t. IN dizinler
  m.Xdir=dizinler.dizin
  SET DIRE TO (m.xdir)
  =ADIR(.arraydizin,"*.*","D")
  FOR m.Xi=1 TO ALEN(.arraydizin,1)
    DO CASE
    CASE .arraydizin[m.Xi,1]="." OR .arraydizin[m.Xi,1]=".."
    CASE "D" $ .arraydizin[m.Xi,5]
      INSERT INTO dizinler VALUES (ADDBS(ALLTRIM(m.xdir))+ALLTRIM(.arraydizin[m.Xi,1]), .f.)
      .textdizinsay.value=.textdizinsay.value+1
    CASE "A" $ .arraydizin[m.Xi,5]
      INSERT INTO dosyalar VALUES (JUSTSTEM(.arraydizin[m.Xi,1]),;
                                   JUSTEXT(.arraydizin[m.Xi,1]),;
                                   .arraydizin[m.Xi,5],;
                                   .arraydizin[m.Xi,2],;
                                   .arraydizin[m.Xi,3], m.xdir )
      .textdosyasay.value=.textdosyasay.value+1
*    CASE "R" $ .arraydizin[m.Xi,5]
 
    OTHERWISE
      INSERT INTO acaipler VALUES (JUSTSTEM(.arraydizin[m.Xi,1]),;
                                   JUSTEXT(.arraydizin[m.Xi,1]),;
                                   .arraydizin[m.Xi,5],;
                                   .arraydizin[m.Xi,2],;
                                   .arraydizin[m.Xi,3],  m.xdir )
    ENDC
 
  ENDF
.grdizin.Refresh
 
ENDD
.grdosyalar.Refresh
.grdosyalar.AutoFit
ENDW
VFP9 SP2

2

Re: ADIR() komutu sonucu çıkan attributes::xarray[xi,5] sonuçları

arrayin 5. elemanina kurulu attributelar geliyor. Kurulu olmayanlarin yerine nokta koyuyor. ..... olunca hicbir attribute kurulu degil. Directory icin garantili kontrol:

Visual Fox Pro
IsDir = atc( 'D', xarray[m.ix,5] ) > 0

3

Re: ADIR() komutu sonucu çıkan attributes::xarray[xi,5] sonuçları

o zaman
! ISBL(xarray[m.ix,1])  AND xarray[m.ix,1]="....."
dosya olarak kabul edilebilinir mi ?

"attribute kurulu" ne demek pek kavrayamadım

VFP9 SP2