VERIFICAR EXISTENCIA DE ARQUIVO
Alguém sabe como verificar se um arquivo Y existe?
Mas não posso usar o Dir$ ou Dir
Vlw!
Mas não posso usar o Dir$ ou Dir
Vlw!
pq nao pode usar dir$?
Pois ao usar o Dir, eu mudo o valor de uma variavel
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
SINKERTEC, desculpe mas sua solução é inviavel ao meu caso!
você pode usar assim:
adiciona a referencia: "microsoft scripting runtime"
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
Obrigado a todos, mas a dica do Hugo me serviu de bandeja! Vlw...
Tópico encerrado , respostas não são mais permitidas