VERIFICAR EXISTENCIA DE ARQUIVO

DREAMSOFT 23/04/2007 12:54:01
#213341
Alguém sabe como verificar se um arquivo Y existe?
Mas não posso usar o Dir$ ou Dir

Vlw!
RODRIGOGBGOMES 23/04/2007 13:02:53
#213342
pq nao pode usar dir$?

DREAMSOFT 23/04/2007 13:10:03
#213345
Pois ao usar o Dir, eu mudo o valor de uma variavel
USUARIO.EXCLUIDOS 23/04/2007 13:14:19
#213347


Crie uma variavel Variant e jogue os dados nela...acho q soluionará seu problema!

Ou tente com essas funções...que pegam os atributos do arquivo...tente aproveitá-lo para atingir seu objetivo

'Num módulo:
Public Type Attrib
Archive As Boolean
Hidden As Boolean
ReadOnly As Boolean
System As Boolean
End Type

Public Function MudaAtributo(ByVal sNomeArq As _
String, ByRef m_Attrib As Attrib) As Boolean
Dim AtributoMudar As Integer

If m_Attrib.Archive = True Then
AtributoMudar = AtributoMudar + vbArchive
End If
If m_Attrib.Hidden = True Then
AtributoMudar = AtributoMudar + vbHidden
End If
If m_Attrib.ReadOnly = True Then
AtributoMudar = AtributoMudar + vbReadOnly
End If
If m_Attrib.System = True Then
AtributoMudar = AtributoMudar + vbSystem
End If

If Dir(sNomeArq, vbReadOnly + vbArchive + _
vbSystem + vbHidden) = "" Then
MudaAtributo = False
Exit Function
End If

On Error GoTo Erro
SetAttr sNomeArq, AtributoMudar
On Error GoTo 0
MudaAtributo = True
Exit Function
Erro:
MudaAtributo = False
End Function


Public Function PegaAtributo(ByVal sNomeArq As _
String, ByRef m_Attrib As Attrib) As Boolean
Dim AtributoReceber As Integer

If Dir(sNomeArq, vbReadOnly + vbArchive + _
vbSystem + vbHidden) = "" Then
PegaAtributo = False
Exit Function
End If

On Error GoTo Erro
AtributoReceber = GetAttr(sNomeArq)
On Error GoTo 0

m_Attrib.Archive = AtributoReceber And vbArchive
m_Attrib.Hidden = AtributoReceber And vbHidden
m_Attrib.ReadOnly = AtributoReceber And vbReadOnly
m_Attrib.System = AtributoReceber And vbSystem
PegaAtributo = True
Exit Function
Erro:
PegaAtributo = False
End Function


'P/ saber os atributos, proceda da seguinte maneira:
Private Sub cmdPegar_Click()
Dim ATR As Attrib

If Not PegaAtributo("C:\Cezar.BMP", ATR) Then
Debug.Print "Erro ao Pegar"
Exit Sub
End If

MsgBox "Atrubutos do Arquivo: C:\Cezar.BMP" & _
vbCrLf & "A - " & ATR.Archive & vbCrLf & _
"H - " & ATR.Hidden & vbCrLf & _
"R - " & ATR.ReadOnly & vbCrLf & _
"S - " & ATR.System
End Sub

Ele retornará da seguinte forma:
ATR.Archive => Atributo Archive (Arquivo)
ATR.Hidden => Atributo Hidden (Oculto)
ATR.ReadOnly => Atributo ReadOnly (Somente p/ Leitura)
ATR.System => Atributo System (Arquivo de Sistema)

'P/ mudar os atributos, proceda da seguinte
'maneira:
Private Sub cmdMudar_Click()
Dim ATR As Attrib
ATR.Archive = True
ATR.Hidden = False
ATR.ReadOnly = False
ATR.System = False

If Not MudaAtributo("C:\Cezar.BMP", ATR) Then
Debug.Print "Erro ao Pegar"
Exit Sub
End If
Call cmdPegar_Click
End Sub

Então, após ele mudar os atributos, ele irá confirmar (chamando a Sub anterior) e lhe mostrará o resultado (os novos valores p/ os atributos...).

Detalhe, os parâmetros da função MudaAtributo são:
ATR.Archive => Atributo Archive (Arquivo)
ATR.Hidden => Atributo Hidden (Oculto)
ATR.ReadOnly => Atributo ReadOnly (Somente p/ Leitura)
ATR.System => Atributo System (Arquivo de Sistema)

Boa sorte
DREAMSOFT 23/04/2007 13:21:04
#213348
SINKERTEC, desculpe mas sua solução é inviavel ao meu caso!
HUGOSSOUZA 23/04/2007 13:22:08
#213349
Resposta escolhida
você pode usar assim:


adiciona a referencia: "microsoft scripting runtime"

Dim fso As New FileSystemObject

if fso.FileExists("c:    este.txt") = true then
msgbox "Arquivo existe"
else
msgbox "Arquivo não existe"
end if
DREAMSOFT 23/04/2007 13:30:47
#213350
Obrigado a todos, mas a dica do Hugo me serviu de bandeja! Vlw...
Tópico encerrado , respostas não são mais permitidas