[ASP+File操作]長いファイル名の操作

このQ&Aのポイント
  • Windows2000 + IISの環境でASPプログラミングをしている時、9文字以上のファイル名でテキストファイルを保存する際にエラーが発生する問題があります。どのように対処すれば良いでしょうか?
  • ASPプログラミングをしている際に、長いファイル名でテキストファイルを保存する際に問題が発生します。具体的には、9文字以上のファイル名がエラーとなるということです。どのように対処すれば良いでしょうか?
  • Windows2000 + IISの環境でASPプログラミングをしている際に、9文字以上のファイル名でテキストファイルを保存するとエラーが発生します。この問題を解決する方法を教えてください。
回答を見る
  • ベストアンサー

[ASP+File操作]長いファイル名の操作。

こんばんは。 Windows2000 + IIS という環境でASPプログラミングをしています。 テキストファイルを操作する処理があるものを制作していますが・・・1つ問題が。 Set fs = Server.CreateObject("Scripting.FileSystemObject") Set fsData = fs.OpenTextFile("C:\demo.csv",8"True) としますと問題ないのですが・・・ いろいろ検証した結果・・・ファイル名が8文字までで9文字以上になるとエラーになることがわかりました。 たとえば a20030711.csv などは駄目ということです。 これも自力で調べたことなので確かかどうかは判りませんが・・・。 もし、そうであれば・・・9文字以上のファイル名にてテキストファイルを保存したい場合はどうすればいいでしょか?? 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • urusyun
  • ベストアンサー率52% (10/19)
回答No.2

#1です。 いま、当方の環境で以下のソースを試験的に実行してみましたが、やはり何の問題もなく出力されました。 なので、情報が少なくなんともいえないのですが、 #1で挙げた以外だと、あと可能性のありそうなものとして ぱっと思いつくのはファイルシステムぐらいなものでしょうか… なお、当方はWin2KSP2+NTFSにて運用しています。 (外部からのアクセスを許していないため、SP3以降は当てていません) 本当に、役に立たない情報ですみません… -------------------------------------------- <%Option Explicit%> <% Response.Buffer = TRUE %> <% Response.Expires = 0 %> <% Response.AddHeader "progma","no-cache" %> <% Dim oFS Dim oTS Set oFS = Server.CreateObject("Scripting.FileSystemObject") 'ファイルアクセス Set oTS = oFS.OpenTextFile("C:\zzzzzzzzzzzzzzzzzzzz.csv",8,True) 'ファイルのオープン oTS.WriteLine("aa") 'レコード出力 oTS.Close Set oFS = Nothing %> テスト -----------------------------------------------

その他の回答 (1)

  • urusyun
  • ベストアンサー率52% (10/19)
回答No.1

そのような現象、当方では起きていませんが… 平気で、10数文字の名称をつけて保存しています。 (やはりCSVファイルです) なんともいえないのですが、もしかしてWindows2000のパッチ(サービスパック)をあてると直るかもしれませんが… 環境がもう少し詳しくわかると、確認のしようがあるかもしれません。 (なお、当方ではDellのPowerEdgeを使用しています) 役に立たなくて申し訳ないです。

関連するQ&A

  • ASPでのテキストファイルの参照・更新??

    下記の質問のタイトルが違ってきたので新たに質問します。 テキストファイルの参照・更新(別のASP)で動作が止まってしまいます。(なんでもありのローカルIISサーバーでは動作しますが・・) テキストファイルの参照と更新の所で止まって動かなくなります。原因は何かヒントを頂きたく思います。 その部分は参照が下記です。 <% Set Fs = Server.CreateObject("Scripting.FileSystemObject") Set Stream = Fs.OpenTextFile("d:\websites\home\web\staff\news\top-news.html",1,true) do until StreamAtEndOfStream    wk = Stream.ReadLine %>    <%=wk %> <% loop   Stream.close   Set Stream = Nothing %> 更新が下記です。 <% Set Fs = Server.CreateObject("Scripting.FileSystemObject") Set Stream = Fs.OpenTextFile("d:\websites\home\web\staff\news\top-news.html",2,true) Stream.WriteLine "<html>" Stream.WriteLine "</html>"   ・   ・ Stream.Close Set Stream = Nothing

  • csvファイルを読み込む方法について

    aspにてscvファイルを読み込む際、直接ファイル名を指定するとうまくいくのですが、ファイル名を変数で指定しようとすると、「ファイルが見つかりません」というエラーになってしまいます。どのように記述すれば良いでしょうか。お教えください。よろしくお願いいたします。 (例) 'OK Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath("aaa.csv"),1) 'NG fname = "aaa.csv" Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath(fname),1) また、 Set objText = objFS.OpenTextFile(Server.MapPath("""" & fname & """"),1) としてもダメでした。以上です。

  • ASPでファイル書き込みができない。

    こんばんわ、ASPで悩みまくってます。 今、win2000にIISを入れて動作させてます。 つまづいたのはファイル書き込みの個所です。 これを書いたソースを実行させると、ブラウザが真っ白になり、 以後、返答がなくなります。 最後の「ハロー」が表示されないのでそこまで行ってないのかも しれません。 個人的にはIISの権限かなとおもい、いろいろやってみました。が、 うまくいきません。同じような現象の起きた方はおられますでしょうか? 教えていただけたら、嬉しいです。 以下はソースです。 <% FilePath = Server.MapPath("./test.csv") Set FileOBJ = Server.CreateObject("Scripting.FileSystemObject") Set LogFile = FileOBJ.OpenTextFile(FilePath,2,True,False) LogFile.Write("文字列") FileOBJ.Close Set FileOBJ = Nothing Response.Write "ハロー" %>

  • テキストファイルの更新?

    ASP初心者です。 テキストファイルを出力したいのですが下記のエラーがでます。ファイルのインターネットユーザーはアクセス可能にしています。 Microsoft VBScript 実行時エラー (0x800A0046) 書き込みできません。 ソースは下記です。 Set Fs = Server.CreateObject("Scripting.FileSystemObject") Set Stream = Fs.OpenTextFile("topnews.html",2,true) Stream.WriteLine "<html>"        ・        ・ 原因として何が考えられますか?お教え願います。

  • VB6.0 CreateObject以外のファイルI/O

    以前CreateObject("Scripting.FileSystemObject")を使用してファイルを読込む方法、一行ずつ書込む方法を教えていただいたのですが。 環境によってはウイルスチェックに引っかかってしまうようで、別な手段を取らなければならなくなりました。 読込み: Set objFso = CreateObject("Scripting.FileSystemObject") Set objTxtSt = objFso.OpenTextFile(strFilePass, 1) strData = CStr(objTxtSt.ReadAll()) 書込み: Set objFso = CreateObject("Scripting.FileSystemObject") Set objTxtSt = objFso.OpenTextFile(strFilePass, 2, False) Call objTxtSt.WriteLine(strData) 現在の処理は以上です。 上記と同じ処理をCreateObjectを使用せずに作成するにはどのようにすればよろしいでしょうか。

  • VBSでテキストファイルを作成

    こんにちは。 set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") を実行すると、実行したスクリプトが存在する場所に「倉庫」という名のフォルダが作成されます。 その倉庫というフォルダの中にテキストファイルを作成するにはどうすればよいでしょうか? set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") set fo = fso.opentextfile(FILENAME) close.fo 相対的にファイルの場所を指定する方法がわかりません。 絶対パスでないとだめなのでしょうか?

  • あるフォルダのファイル名を取得したい(vbs)

    VBスクリプトを使って、TESTフォルダにあるJPGファイル中で、一番新しいファイルのファイル名を取得したいと思っています。 JPGは、ファイル名が日付.jpgになっています。例)061123.jpg vbsは苦手で途中挫折してしましました。。ぜひ教えて頂けないでしょうか。 --------------- Dim Fs,strPath,Fl Set Fs = CreateObject("Scripting.FileSystemObject") strPath = "C:\Test\" Set Fl = Fs.GetFile(strPath) MsgBox Fl Set Fs = Nothing Set Fl = Nothing

  • VBAで巨大なファイルの途中からの読み込み

    こんにちは。 EXCELのVBAにて巨大なファイルのデータを途中から読み込む方法がございましたらご教授いただきたいと思っています。 具体的には300万行ほどのCSVデータがありまして たとえば、50万行目のデータを読み込みたい場合下記のようにすることにより、データの取得は可能なのですが、50万行目までSKIPするのに数秒の時間がかかってしまいます。いきなり50万行目からのデータを取得するようなスマートな方法は存在するのでしょうか。 よろしくお願いいたします。 Const ForReading = 1, ForWriting = 2, ForAppending = 3 Dim fs, f Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.OpenTextFile("C:\tmp.csv", ForReading, 0) For w = 0 To 500000 f.skipline Next Debug.Print f.readline f.Close

  • ASP内で他のASPファイルを読み込む方法

    ASP内で別ファイル(A.html)を読み込みました。下記の通りです。 <% Set objA = Server.CreateObject("Scripting.FileSystemObject") Set objFile = objA.OpenTextFile("A.html", 1, False) If Err.Number > 0 Then Response.Write "Open Error" Else Do Until objFile.AtEndOfStream Response.Write objFile.ReadAll Loop End If objFile.Close %> 読み込みはできたのですが、問題なのはA.htmlにもASPの処理が書かれてて、その部分がそのままテキストとして表示されたのです。 このように表示されました↓ <% ASP %> 読み込んだ際に、A.htmlに書かれたASP処理も実行させるにはどうすればよいのでしょうか?

  • CSVファイルのダウンロードができたりできなかったり・・

    ASPで、サーバー側で動的に作成したCSVファイルをクライアント側にダウンロードさせたいと思っていますが、 ダウンロードできるときとできないときがあり困っています。 「ファイルのダウンロード」ダイアログが表示され、うまくダウンロードできるときと、 「Internet Explorer では、[サイト名]-[aspファイル名]をダウンロードできません。このインターネットのサイトを開くことができませんでした。要求されたサイトがしようできないか、見つけることができません。後でやり直してください。」のメッセージが表示され、ダウンロードできない場合があります。 どちらもサーバー上にダウンロードすべきCSVファイルは作成されているので、ダウンロード部分に問題があると思うのですが、原因がわかりません。 ひとつ気づいたのが、csvファイルの容量が4.0MBを超えるとダウンロードできないような気がするのですが、関係ありますでしょうか? よろしくお願い致します。 --------出力のためのスクリプト----------------- Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition", "attachment; filename = " & CSVファイル名 Set fs = Server.CreateObject("Scripting.FileSystemObject") CSV_DATA = Server.MapPath(CSVファイル名) If fs.FileExists(CSV_DATA) Then Set ts = fs.OpenTextFile(CSV_DATA, 1) Do Until ts.AtEndOfStream Response.Write ts.ReadLine() & vbCrLf Loop ts.Close End If Response.End -----------------------------------------------

専門家に質問してみよう