出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() |
[2663] ファイルへの書き込みエラーについて |
投稿者:adeosさん 2002/09/18 10:13:44 |
お世話になっています。 簡単なカウンターのプログラムを動かそうとしたのですが、カウンタ数を保存しているファイルに書き込みが出来ずにエラーが発生します。 (プログラムはとあるサイト様のものをそのまま流用しています) 原因など思い当たればご助言いただければ、と思います。 以下のソースなのですが、ファイルの読込は上手く行っているのですが、「Set OutStream」の行で「書き込みできません」というエラーが出ます。 ----ソース(ここから) <% filename = Server.MapPath("count.dat") ''ファイルのアクセスをできるようにする Set FileObject = Server.CreateObject("Scripting.FileSystemObject") ''ファイルをオープンする(読込) Set InStream= FileObject.OpenTextFile (filename, 1, False, False) count = Instream.Readline Set Instream = Nothing count = count + 1 Set OutStream = FileObject.CreateTextFile (filename, True, False) OutStream.WriteLine count Set OutStream = Nothing %> -----ソース(ここまで) |
[2664] 追記 |
投稿者:adeosさん 2002/09/18 10:18:50 |
追記ですが、環境は OS:WinXP IIS5.1 です。 |
[2665] Re:ファイルへの書き込みエラーについて |
投稿者:北岳さん 2002/09/18 10:55:23 |
(1) OpenTextFileで開きっ放しのファイルと同名のファイルを CreateTextFile してもできるはずはありませんので、 Set Instream = Nothing (これだけではファイルは開いたまま。) の1行上に、 Instream.close を置き、 (2) 閉じてすぐ開こうとしても、閉じきっていない可能性もありますので、 Set Instream = Nothing の1行下に set basp=Server.CreateObject("basp21") basp.sleep 1 を書いて、ぢつと1秒待ってから書込みに移るのではどうでしょう。 (3)あと、1行目直下に response.write filename を書いて、絶対パスが正しく表記されていることを確認。 |
[2666] Re:ファイルへの書き込みエラーについて |
投稿者:adeosさん 2002/09/18 11:15:51 |
回答ありがとうございました。 (1) Instream.close を置く これだけでは書き込みエラーになりました。 ので、 (2) set basp=Server.CreateObject("basp21") basp.sleep 1 この二行を付け加えましたが、結果は同様でした。 (3)response.write filename 絶対パスについては問題ありませんでした。 読込みの部分については問題ないようです。 filenameで指定されたファイルの中身が表示されました。 せっかく返信いただいたのにすみません…。 引き続き私も考えてみます。 |
[2667] Re:ファイルへの書き込みエラーについて |
投稿者:くっくさん 2002/09/18 11:37:30 |
ソースを確認する以前にアクセス権はきちんとあるのでしょうか? この場合は書き込み権ですが。 |
[2668] アクセス権の問題でした(解決) |
投稿者:adeosさん 2002/09/18 12:02:06 |
回答ありがとうございます。 くっくさんのおっしゃるとおり、アクセス権の問題でした。 count.datの [プロパティ]->[セキュリティ] で、ユーザを追加すればいいんだ!とは思っていたのですが、何を追加して良いかわからずに少々困りました。 結論としては、「インターネットゲストアカウント」というものを追加すれば良かったようです。 追加の仕方は、[追加]をクリックして、「選択するオブジェクト名を入力」という枠に IUSR_コンピュータ名 を記述して[OK]です。 ユーザが追加されるので、書き込み権を与えました。 色々とご面倒をおかけしました。 ありがとうございました。 |
TreeBBS For ASP V.0.1.3 |