Pergunta

Ok, ele tem sido um tempo desde que eu já trabalhei com asp clássico por isso estou um pouco enferrujado. Aqui está a minha pergunta.

Eu estou tentando escrever um arquivo para o sistema de arquivos usando FSO. O código a seguir é muito simples. No entanto, o arquivo não está aparecendo e sem erros estão aparecendo. Eu sei que é executar o código, porque eu posso adicionar response.writes antes e depois deste trecho e ambos aparecem na saída. No entanto, nenhum arquivo é criado, nenhum erro é lançado. Eu mesmo mudei por isso é um caminho falso para forçar um erro. Não dados. Eu adicionei todos ter lido e escrever sobre as permissões do diretório. Ainda o mesmo.

Idéias?

Aqui está o meu código:

Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

'Open the text file
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile("d:\test.txt", True)

'Display the contents of the text file
objTextStream.WriteLine "howdy"

'Close the file and clean up
objTextStream.Close
Set objTextStream = Nothing
Set objFSO = Nothing
Foi útil?

Solução

Tente isto:

<%

if Append = true then
   iMode = 8
else 
   iMode = 2
end if
set oFs = server.createobject("Scripting.FileSystemObject")
set oTextFile = oFs.OpenTextFile("C:\wwwroot\Test.txt", iMode, True)
oTextFile.Write "Test Content"
oTextFile.Close
set oTextFile = nothing
set oFS = nothing

%>

Eu tentei isso localmente, depois de definir as permissões em meu diretório e funcionou.

Você pode obter a fonte original a partir daqui: http://www.freevbcode.com/ShowCode.Asp?ID=89

Outras dicas

A única razão possível que o código não iria produzir uma mensagem de erro, é que você tem isso em sua página:

On Error Resume Next

Isso é ruim, pela razão de que você acabou de ver. É apenas silenciosamente ignora quaisquer mensagens de erro, e deixa-lo sem uma pista de por que ele não está funcionando como esperado.

(Deve ser usado apenas para peças isoladas do código onde você antecipar um erro, e realmente verificar se há uma condição de erro após cada operação.)

Remova que a partir de sua página, ea mensagem de erro que você provavelmente terá é que os parâmetros são inválidos para a chamada nesta linha:

Set objTextStream = objFSO.OpenTextFile("d:\test.txt", True)

Você esqueceu o segundo parâmetro, que é o modo I / O. Você deve usar o valor 1 para escrita:

Set objTextStream = objFSO.OpenTextFile("d:\test.txt", 1, True)

Como alternativa, você pode usar o método CreateTextFile vez:

Set objTextStream = objFSO.CreateTextFile("d:\test.txt", True)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top