Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: VB i katalogi
bracia_m




Typ: neutral
Postów: 6
Zarejestrowany: Jul 2004
VB i katalogi

Jak sprawdzić czy istnieje jakiś katalog, ale chodzi mi o pusty katalog.

11-07-2004 13:36
Pokaż profil bracia_m  Wyślij email do bracia_m        3490937
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

hmm... mam pewien pomysł, ale dość prymitywny:

function CzyJest(Folder as string) as boolean
on error goto byk
czyjest=true
if right(folder,1)<>"\" then folder=folder & "\"
open folder & "test.txt" for output as #1
print #1,"www.mikmas.prv.pl"
close #1
exit function
byk:czyjest=false
end function

Powinno działać


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

11-07-2004 14:16
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

A to na podstawie Microsofta :
wywołanie np.
Private Sub cmdListFiles_Click()

Dim SearchStr As String

Dim FileCount As Integer

Dim DirCount As Integer

Call FindFiles("C:\Moje dokumenty", SearchStr, FileCount, DirCount)

MsgBox ("SearchStr: " & SearchStr _

        & vbCrLf & "FileCount: " & FileCount _

        & vbCrLf & " DirCount:" & DirCount)

End Sub



Function FindFiles(ByVal path As String, ByRef SearchStr As String, _
      Optional ByRef FileCount As Integer = 0, Optional ByRef DirCount As Integer = 0)
Dim FileName As String
Dim DirName As String    ' nazwa podkatalogu
Dim dirNames() As String ' bufor
Dim nDir As Integer
Dim i As Integer

On Error GoTo sysFileERR
If Right(path, 1) <> "\" Then path = path & "\"
' szukaj podkatalogów
nDir = 0
ReDim dirNames(nDir)
DirName = Dir(path, vbDirectory Or vbHidden Or vbArchive Or vbReadOnly Or vbSystem)  '
Do While Len(DirName) > 0
  If (DirName <> "." And (DirName <> ".." Then
      ' sprawdz czy to jest  katalog (bitwise)
      If GetAttr(path & DirName) And vbDirectory Then
        dirNames(nDir) = DirName
        DirCount = DirCount + 1
        nDir = nDir + 1
        ReDim Preserve dirNames(nDir)
      End If                          ' katalogi
sysFileERRCont:
  End If
  DirName = Dir()  ' Get next subdirectory.
Loop

''''  sumuj file sizes np .
FileName = Dir(path & SearchStr, vbNormal Or vbHidden Or vbSystem _
Or vbReadOnly Or vbArchive)
While Len(FileName) <> 0
  FindFiles = FindFiles + FileLen(path & FileName)
  FileCount = FileCount + 1
  '''' dodaj do listbox np
  ''''lstFile.AddItem path & FileName & vbTab & _
      FileDateTime(path & FileName)  ' data modyfikacji
  FileName = Dir()  ' następny plik.
Wend
' jesli sa podkatalogi
If nDir > 0 Then
  ' do nich
  For i = 0 To nDir - 1
    FindFiles = FindFiles + FindFiles(path & dirNames(i) & "\", _
      SearchStr, FileCount, DirCount)
  Next i
End If

AbortFunction:
      Exit Function
sysFileERR:
      If Right(DirName, 4) = ".sys" Then
        Resume sysFileERRCont ' np pagefile.sys
      Else
        MsgBox "Error: " & Err.Number & " - " & Err.Description, , _
        "Unexpected Error"
        Resume AbortFunction
      End If
End Function

przerabiając tą funkcję można uzyskać różne informacje....


_____________________________________________
Karolina

11-07-2004 21:45
Pokaż profil karolinavb  Wyślij email do karolinavb   
Jelcyn
Admin forum




Typ: admin
Postów: 895
Zarejestrowany: Apr 2002


hmm... mam pewien pomysł, ale dość prymitywny:

function CzyJest(Folder as string) as boolean
on error goto byk
czyjest=true
if right(folder,1)<>"" then folder=folder & ""
open folder & "test.txt" for output as #1
print #1,"www.mikmas.prv.pl"
close #1
exit function
byk:czyjest=false
end function

Powinno działać



A nie lepiej dać taki kod ?

on error goto 2
chdir "c:\1"
msgbox "jest"
exit sub
2
msgbox "nie ma"


_____________________________________________
Jelcyn
vb4all(małpka)canpol.pl
http://www.coderscity.pl/no-vb4all * http://www.jelcyn.com

11-07-2004 23:14
Pokaż profil Jelcyn  Wyślij email do Jelcyn   Odwiedź stronę Jelcyn       270849979    6237704
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

W treści pytania zawarte było słowo "pusty", sądzę że chodzi mu również o to,że w przypadku gdy katalog istnieje należy stwierdzić również czy zawiera on pliki lub podkatalogi...

No właśnie konstrukcja pytań, może jak w SQL trzeba pytać, właściwe pytanie ---> być może właściwa odpowiedź, a nie zgadywanka...


_____________________________________________
Karolina

12-07-2004 10:07
Pokaż profil karolinavb  Wyślij email do karolinavb   
Jelcyn
Admin forum




Typ: admin
Postów: 895
Zarejestrowany: Apr 2002


W treści pytania zawarte było słowo "pusty", sądzę że chodzi mu również o to,że w przypadku gdy katalog istnieje należy stwierdzić również czy zawiera on pliki lub podkatalogi...

No właśnie konstrukcja pytań, może jak w SQL trzeba pytać, właściwe pytanie ---> być może właściwa odpowiedź, a nie zgadywanka...


mikmas mnie zmylił Ty swoim listingiem ;-)
A co do sprawdzania czy folder jest pusty, można dać FileListBox'a (Visible=False) i 2 linijki kodu:

file1.path="C:\1"
if file1.listcount=0 then msgbox "pusty"


_____________________________________________
Jelcyn
vb4all(małpka)canpol.pl
http://www.coderscity.pl/no-vb4all * http://www.jelcyn.com

12-07-2004 10:10
Pokaż profil Jelcyn  Wyślij email do Jelcyn   Odwiedź stronę Jelcyn       270849979    6237704
Wszystkich odpowiedzi: 5 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1