<FileSystemObjectの.GetTempName(一時ファイル名作成)>
こんにちは、三流プログラマーのKen3です。 今回は、 FileSystemObjectの.GetTempName を使用して、テンポラリファイルを作成してみます。/* * 1.今回のキッカケ */
一時的な作業ファイルを作成する時、どうするのだろう? と探っていたら、 FileSystemObjectの.GetTempName を見つけたので、サンプルを作ってみます。/* * 2.FileSystemObjectの.GetTempName */
使い方は、簡単で、 '*1 FileSystemObjectを生成します、、って英文、そのままジャン。 Set objFS = Server.CreateObject("Scripting.FileSystemObject") と、 ファイルシステムのオブジェクトを作成してから、 '*2 .GetTempNameを使用して、一時ファイル名を作成する strTEMPNAME = objFS.GetTempName '.GetTempNameを使用してリターン値をもらう たんに、 objFS.GetTempName とやるだけで、一時ファイルのファイル名を取得できます。 私が勘違いしてたんだけど、 .GetTempName って、ファイル名を返してくれるだけで、実際のファイルは作成されません(笑) なので、自分で、.CreateTextFileなどで作成します。 ※同時に作られるかと思っていたけど、 ディレクトリがあるよねよく考えたら。 システムのデフォルトに捨てファイルを作ってくれるかと大きく勘違い。 あっ、あと、一時ファイルなんだけど、自動的にファイルは消えないので、 自分で消さないと、ゴミが貯まるよ(笑) *平和な私は、一時エリアにファイルを勝手に作り、 ASP終了後、勝手に消えると思ってた(予想したけど) 実際は、ファイル名だけ作ってくれるので、そこから先はご自分で(爆) http://www.ken3.org/cgi-bin/test/test069-1.asp で、テスト可能です。 下記が使用サンプルです、 .GetTempNameでファイル名取得後、テキストファイル作成、中身に時刻を書く。 ファイル閉じた後、ディレクトリの一覧を確認で表示してます。 実行結果とあわせて、ソースを確認してください。 <%@LANGUAGE=VBScript%> <html> <head> <title>FileSystemObjectの.GetTempName(一時ファイル名を作成する)</title> </head> <body> <h2>一時ファイル名を作成する<br>FileSystemObjectの.GetTempName</h2> <b>FileSystemObjectの.GetTempName</b>を使用して、一時ファイル名を取得してみます<br> <br> .GetTempNameを使用すると、一時ファイルの名称を作成してくれます。<br> あとは、その名称を使用して、ファイルを作成します<br> (自動的にファイルは作られないので注意してください)<br> ※下記の実行結果とソースを見てください。<br> <hr> <% '*1 FileSystemObjectを生成します、、って英文、そのままジャン。 Set objFS = Server.CreateObject("Scripting.FileSystemObject") '*2 .GetTempNameを使用して、一時ファイル名を作成する strTEMPNAME = objFS.GetTempName '.GetTempNameを使用してリターン値をもらう Response.Write ".GetTempNameで作成した名称[<b>" & strTEMPNAME & "</b>]<br>" '現在のフォルダーから相対位置のworkディレクトリの名称を取り出す strFDIRNAME = Server.MapPath("work/") 'フォルダー名取得 'work/xxxxのファイルを作成して、テストデータを書き込む Response.Write strFDIRNAME & "\" & strTEMPNAME & "を作成<br><br>" Set objTEXTFILE = objFS.CreateTextFile(strFDIRNAME & "\" & strTEMPNAME) objTEXTFILE.WriteLine "現在時刻は" & Now() objTEXTFILE.WriteLine "テンポラリファイルのテストでした(笑)" objTEXTFILE.Close Set objTEXTFILE = Nothing '確認でファイルリストの表示.GetFolderで取得後、一覧表示 Response.Write strFDIRNAME & "のファイル一覧です<br>" & vbCRLF Set objDIR = objFS.GetFolder(strFDIRNAME) '.Filesコレクションにアクセスする For Each objFILE In objDIR.Files strFNAME = objFILE.Name '取り出したobjFILEの.Nameを取得 If strFNAME = strTEMPNAME Then Response.Write "<b>" Response.Write "<a href='work/" & strFNAME & "'>" Response.Write strFNAME & "</a>" & vbTab 'おまけで更新日の表示 Response.Write objFILE.DateLastModified & "<br>" & vbCRLF If strFNAME = strTEMPNAME Then Response.Write "</b>" Next %> <hr> </body> </html>/* * 3.終わりの挨拶 </HTML> */
今回は、 一時ファイルの作成のサンプルでした。 ※一時ファイルを使うような大きなシステムを作らないとなぁ。。。 何かの参考となれば幸いです。 ASP、VBScript勉強中の三流プログラマーのKen3でした。
ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、
感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]
まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。
次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません
広告:
DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く
VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]