Eu tive o mesmo problema e encontrei uma solução no Stackoverflow (você pode dar uma olhada em link ).
Este código tornará visíveis apenas os diretórios.
Portanto, crie um arquivo BAT (abra o Bloco de Notas, copie + cole o código abaixo e renomeie o arquivo para fix.bat ), que conterá:
echo "Enter Drive letter"
set /p driveletter=
attrib -s -h -a /s /d %driveletter%:\*.*
Além disso, eu modifiquei um pouco o código fornecido pelo Sr. Xymon para evitar tornar o Reciclado Bin visível e evitar o Erro de Permissão do Windows.
Aqui está o código:
Sub ShowSubFolders(CurrentFolder)
' Skip some folders to avoid Windows Error Message
If (CurrentFolder.Name <> "RECYCLER") and (CurrentFolder.Name <> "System Volume Information") and (CurrentFolder.Name <> "$RECYCLER.BIN") and (CurrentFolder.Name <> "Config.Msi") Then
For Each Subfolder in CurrentFolder.Subfolders
If (Subfolder.Name <> "RECYCLER") and (Subfolder.Name <> "System Volume Information") and (Subfolder.Name <> "$RECYCLER.BIN") and (Subfolder.Name <> "Config.Msi") Then
Subfolder.Attributes = Subfolder.Attributes AND 0
End If
ShowSubFolders(Subfolder)
Next
End If
End Sub
' Main program
pc_drive = InputBox("Input drive letter." & vbnewline & vbnewline & "Example: G:\", "Drive","G:\")
ryt = Right(pc_drive,2)
If Len(pc_drive) = 3 or ryt = ":\" Then
Set FSO = CreateObject("Scripting.FileSystemObject")
' Check if the path exists or if the drive is ready
If FSO.FolderExists(pc_drive) Then
Call MsgBox("Our script will start after you click OK. Please wait the Finish Message!!!",vbokonly,"Starting...")
' TO DO: Add a progress bar here
ShowSubfolders(FSO.GetFolder(pc_drive))
Call MsgBox("Done!",vbokonly,"Finished")
Else
Call MsgBox("Either your input was invalid or the drive you specified doesn't exist.",vbokonly,"Error")
End If
End If
Felicidades!