2009-05-22 20 views
3

これは古典的なaspで作業していたのでしばらくありましたので少し錆びます。ここに私の質問です。古典的なaspでファイルを書き込めません

私はFSOを使用してファイルシステムにファイルを書き込もうとしています。以下のコードは非常に簡単です。ただし、ファイルが表示されず、エラーは表示されません。私は、このスニペットの前後にresponse.writesを追加することができるので、コードを実行していることを知っています。両方が出力に表示されます。ただし、ファイルは作成されず、エラーはスローされません。私もそれを変更して、エラーを強制する偽のパスです。サイコロはありません。私は誰もがディレクトリのアクセス許可を読み書きできるようにしました。まだ同じ。

アイデア?ここで

は私のコードです:

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 

答えて

4

はこれを試してみてください:

<% 

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 

%> 

を私は自分のディレクトリのパーミッションを設定した後、ローカルでこれを試し、それが働きました。

あなたがここから元のソースを取得することができます。

On Error Resume Next 

です: http://www.freevbcode.com/ShowCode.Asp?ID=89

+0

だけの事は、ファイルが最初に存在するかどうかを確認することです:

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

また、あなたが代わりにCreateTextFileメソッドを使用することができます。 2のiModeがファイルを作成しない限り...しばらくの間、すべてのモードを覚えていない:) –

+0

コードは素晴らしいように見えるが、私は同じ結果を得た。ファイルなし、エラーなし。試したりチェックしたりするには何か? –

+0

ドライブにディレクトリを作成し、書き込みアクセス権を持つすべてのユーザーにアクセス許可を設定して、それが機能するかどうか確認してください。それが許可されている場合は、許可の問題かもしれません。その唯一のことは、アクセス権の問題であれば、アクセス権がないことをコードで報告する必要があるということです。うーん...考えて – CodeLikeBeaker

6

コードは、エラーメッセージを生成しないことを唯一の可能な理由は、あなたのページでこれを持っているということです悪い、あなたが見たことがあるからです。それは単に何もエラーメッセージを無視して、それが期待どおりに機能していない理由を知らさずに残します。

(それが唯一のエラーを予測コードの分離された部品のために使用され、実際には各操作の後にエラー状態をチェックする必要があります。)

ページからこれを削除して、あなたのエラーメッセージおそらく取得するには、パラメータがこの行の呼び出しには無効であるということです。

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

あなたは、I/Oモードである二番目のパラメータを、忘れてしまいました。あなたは書き込みのために値1を使用する必要があります:私は違っただろう

Set objTextStream = objFSO.CreateTextFile("d:\test.txt", True) 
+0

2つの正解を確認できたらいいですか?私たちはちょうどそのコードが悪い "On Error Resume Next"であることを発見しました。それを削除しました。よく働く。助けてくれてありがとう!!! –

関連する問題