3

わかりました。クラシック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

2 に答える 2

6

コードがエラーメッセージを生成しない唯一の考えられる理由は、ページにこれがあることです。

On Error Resume Next

あなたが今見たという理由で、それは悪いことです。エラーメッセージを黙って無視し、期待どおりに機能しない理由がわからないままにします。

(これは、エラーが予想されるコードの孤立した部分にのみ使用し、各操作の後に実際にエラー状態をチェックする必要があります。)

それをページから削除すると、おそらく表示されるエラーメッセージは、次の行の呼び出しに対してパラメーターが無効であるというものです。

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

2番目のパラメータであるI/Oモードを忘れてしまいました。書き込みには値1を使用する必要があります。

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

CreateTextFileまたは、代わりに次の方法を使用できます。

Set objTextStream = objFSO.CreateTextFile("d:\test.txt", True)
于 2009-05-22T15:04:27.137 に答える
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

%>

ディレクトリにアクセス許可を設定した後、これをローカルで試しましたが、機能しました。

元のソースはここから入手できます:http: //www.freevbcode.com/ShowCode.Asp?ID = 89

于 2009-05-22T14:42:28.897 に答える