• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Dos Dir in Excel

  • Onderwerp starter Onderwerp starter AABE
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

AABE

Gebruiker
Lid geworden
4 mrt 2008
Berichten
104
Geacht forum.

ik zoek een snelle manier om de inhoud van een folder in excel te krijgen.
De systematiek mbv FileSystemObject is op een netwerk erg traag.

Bij het werken met de DOS Dir loop ik tegen het volgende probleem aan.

Test1 doet het prima, echter Test2 niet.

Weten jullie hier een oplossing voor?

mvg,

Aat

Code:
Sub test1()

    Dim cmd As String
    Dim ret As Double
    
    rootfolder = "C:\TestFolder\"
     
    cmd = "cmd.exe /c dir " & rootfolder & "/S > C:\contents.txt"
    ret = Shell(cmd, vbHide)

End Sub

Sub test2()

    Dim cmd As String
    Dim ret As Double
    
    rootfolder = "C:\Test Folder\"
     
    cmd = "cmd.exe /c dir " & rootfolder & "/S > C:\contents.txt"
    ret = Shell(cmd, vbHide)

End Sub
 
Al eens geprobeerd met het Dir-command ?
 
Eventjes Googlen had je deze opgeleverd
Code:
'Written: August 20, 2009
'Author:  Leith Ross
'Summary: Convert Long Window path names to short DOS path names

Private Declare Function GetShortPathNameA Lib "kernel32.dll" _
    (ByVal lpszLongPath As String, _
     ByVal lpszShortPath As String, _
     ByVal cchBuff As Long) As Long
    
Function GetShortPath(LongPath As String)
    Dim BuffSize As Long
    Dim RetVal As Long
    Dim ShortPath As String
  
    BuffSize = 260
    ShortPath = String(BuffSize, " ")
    
    If Asc(Left(LongPath, 1)) = 34 Then
       LongPath = Mid(LongPath, 2, Len(LongPath) - 2)
    End If
    RetVal = GetShortPathNameA(LongPath, ShortPath, BuffSize)
    If RetVal <> 0 Then
        GetShortPath = Left(ShortPath, RetVal)
    End If
End Function

Sub test2()
    Dim cmd As String
    Dim ret As Double
    
    RootFolder = GetShortPath("C:\Test Folder\")
     
    cmd = "cmd.exe /c dir " & RootFolder & "/S > C:\contents.txt"
    ret = Shell(cmd, vbHide)

End Sub
 
Hi Rudi,

bedankt... tja, daar was ik nog niet opgekomen.

mvg,

Aat
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan