Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, galera como faço para ler um diretório q tenha um endereço ip ou seja ...
preciso ler isso ..
strPath = "//192.1.1.1/Pasta/arquivo"
' Vamos criar aqui o FileSystemObject:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
' ler o conteúdo do diretório
Set objFolder = objFSO.GetFolder(Server.MapPath(strPath))
For Each objItem In objFolder.Files
nome_arquivo = objItem.Name
arquivo = server.mappath(".") & "\arquivo\" & nome_arquivo
Apresenta esse erro ::
Server.MapPath() erro 'ASP 0174 : 80004005'
Caractere(s) de Caminho Inválido(s)
/controle/at_carga/index.asp, line 24
Um '/' ou '\'inválido foi encontrado no parâmetro Path do método MapPath.
Cara funcionou, eu tinha feito quase igual você fez, a única difereça era q eu tinha invertido as barras ... Valeu resolveu o problema ...
Uma outra dúvida refernte a leitura do diretório ...
Eu já consigo ler o diretório e gravar o nome do arquivo e as linhas lidas no banco de dados, mas acontece q sempre lê o diretório,
eu preciso q ñ leia o q já está no banco de dados, ou seja quero q leia e grave o q ñ existe no banco ... estou fazendo da seguinte forma ...
'nome_arquivo é o arquivo lido
Set rsHora = conn.execute("SELECT * FROM BATIDAS_ WHERE NOME_ARQUIVO = '" & nome_arquivo & "' ")
if not rsHora.eof then
msg = "Não há registros a serem atualizados."
else
lê o arquivo e salva no banco
end if
reponse.write msg
Como posso resolver isso ...seria a mesma lógica abaixo, onde neste caso, você^verifica se existe o login cadastrado se sim redireciona para outra page, se nao inclui
<% 'abrir a conexao
call abreconexao
'crio o rsselect para verificar se os dados jah estaun cadastrados
set rsselect=server.createobject("ADODB.Recordset")
'crio o SQLselect
SQLselect="SELECT login FROM login WHERE login='"&varlogin&"'"
rsselect.open SQLselect,conexao,1,3
if not rsselect.eof then
response.redirect("incluir_form.asp?msgeof=1")
set rsselect=nothing
else
'crio o rsinsert para inseiri os dados no bd
set rsinsert=server.createobject("ADODB.Recordset")
'crio o SQLinsert pra incluir no bd
SQLinsert="INSERT INTO login(login,senha,email) values('"&varlogin&"','"&varsenha&"','"&varemail&"')"
rsinsert.open SQLinsert,conexao,1,3
response.redirect("administracao_treina.asp?msg=1")
set rsinsert=nothing
end if
call fechaconexaoe que erro vem enfrentando?
Bom dia tenho esse script ....
Set rsHora = conn.execute("SELECT * FROM BATIDAS_ WHERE NOME_ARQUIVO = '" & nome_arquivo & "' ")
if not rsHora.eof then
response.write "<center>"
response.write "Não há registros a serem atualizados.<br>"
response.write "<center><input type='button' value='Voltar' onClick='history.back()'></center>"
response.write "</center>"
response.end
else
' lendo os arquivos
Dim array(4)
Dim strPath
Dim objFSO
Dim objFolder
Dim objItem
Dim ObjFile
Dim ObjStream
Const forReading = 1
Const forWriting = 2
Const forAppending = 8
' O diretório que vai ser listado:
strPath = "\\192.1.1.1\Pasta\Arquivos\"
' Vamos criar aqui o FileSystemObject:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
' ler o conteúdo do diretório
'Set objFolder = objFSO.GetFolder(Server.MapPath(strPath))
Set objFolder = objFSO.GetFolder(strPath)
For Each objItem In objFolder.Files
nome_arquivo = objItem.Name
'arquivo = server.mappath(".") & "\Arquivos\" & nome_arquivo
arquivo = strPath & nome_arquivo
'Instância o objeto FSO.
Set Fso = CreateObject("Scripting.FileSystemObject")
'O método GetFile retorna o arquivo existente.
Set ObjFile = Fso.GetFile(arquivo)
'O método OpenAsTextStream abre o arquivo como sendo um fluxo de texto.
Set objStream = ObjFile.OpenAsTextStream(forReading,false)
'Looping para varrer todas as linha do arquivo.
While Not ObjStream.AtEndOfStream
'O método Readline lê uma linha de um arquivo
Linha = ObjStream.Readline
' Tira o espaço da Linha dos arquivos
Linha = replace(Linha," ","")
' Captura o id no arquivo
id = (mid(Linha,1,5))
' Captura a data no arquivo
data = trim(mid(Linha,6,8))
'data e hora do arquivo
data_arquivo = objItem.DateLastModified
'hora, minutos e segundos do arquivo
data_ = (mid(data_arquivo,1,10))
'hora, minutos e segundos do arquivo
hora_arquivo = (mid(data_arquivo,11,16))
'hora e minutos do arquivo do arquivo
hora_min_arquivo = (mid(hora_arquivo,1,6))
'data e hora do arquivo
data_hora = data_ & " " & hora_min_arquivo
'data atual
data_atual = date
data_atual = dbDate(data_atual) &" "& time
on error resume next
conn.execute ("INSERT INTO BATIDAS_ (NOME_ARQUIVO,COD_FUNCIONARIO, DATA, ID_CADASTRO) VALUES ('" &nome_arquivo& "','"&id&"','"&data_arquivo&"','0') ")
conn.execute(SQL)
if err <> 0 then
msg = "Erro ao tentar salvar registro!!! - Favor avisar ao analista."
else
msg = "Registro salvo com sucesso."
end if
Wend
Next
end if
response.write msg
response.write "</center>"
'Fecha o arquivo.
objStream.Close
'Destruíndo objetos
Set Fso = nothing
Set objStream = nothing
' Feito !!! Agora é fechar as variáveis
Set objItem = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
end if
e que erro vem enfrentando?
Acontece que sempre está lendo os arquivos .... A única coisa q está certo é q não cadastra se já estiver cadastrado ...
Nossa agora q eu postei o script pude perceber o erro ... estou fazendo a comparação abaixo ::
Set rsHora = conn.execute("SELECT * FROM BATIDAS_ WHERE NOME_ARQUIVO = '" & nome_arquivo & "' ")
está variavel está dentro do For Each, ela ainda não foi lida, simplesmente coloquei está query logo abaixo do For Each objItem In objFolder.Files e fechei o if antes do next .... e ai rolou ....
Mas agora fiquei com uma dúvida, o script demora um pouco para me retornar a msg "Não há registros a serem atualizados." , isso ocorre pq o script executa todo o For Each para depois retornar a msg ???
Isso... não só o FOR EACH, mas todo o código da página. No caso acima, o Response.Write é uma das últimas linhas a ser executada.
não sei se funciona, mas tentou assim:
strPath = "\\192.1.1.1\Pasta\arquivo"
Set objFolder = objFSO.GetFolder(strPath)
sendo que a a pasta deve ter permissão de segurança e compartilhamento