.NET TIPS

一時ファイル(テンポラリ・ファイル)を作成するには?

デジタルアドバンテージ
2004/11/05

 一時ファイル(あるいはテンポラリ・ファイル)とは、アプリケーションが作業中のデータを一時的に保存するために作成するファイルである。.NET Frameworkのクラス・ライブラリでは、Pathクラス(System.IO名前空間)の静的メソッドであるGetTempFileNameメソッドにより、そのような一時ファイルを自動的に作成することができる。

 GetTempFileNameメソッドは、Windowsで指定された一時フォルダに、一意のファイル名(既存のファイルと重複しないファイル名)で、サイズが0のファイルを作成し、そのパス名を返す。このとき作成されるファイル名は、常に「tmp<16進文字列>.tmp」という形式になる。<16進文字列>の部分は不定である。

 次のサンプル・プログラムは、GetTempFileNameメソッドにより5つの一時ファイルを作成しながら、そのパス名を表示し、最後にこれらのファイルを削除する。

// tempfile.cs

using System;
using System.IO;

public class TempFile {
  static void Main() {
    string[] names = new string[5];

    for (int i = 0; i < 5; i++) {
      string name = Path.GetTempFileName();
      Console.WriteLine(name);
      names[i] = name;
    }
    // 出力例:
    // C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp688.tmp
    // C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp689.tmp
    // C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp68A.tmp
    // C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp68B.tmp
    // C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp68C.tmp

    for (int i = 0; i < 5; i++) {
      File.Delete(names[i]);
    }
  }
}

// コンパイル方法:csc tempfile.cs
5つの一時ファイルを作成し削除するC#のサンプル・プログラム(tempfile.cs)
 
' tempfile.vb

Imports System
Imports System.IO

Public Class TempFile
  Shared Sub Main()
    Dim names(5) As String
    Dim i As Integer

    For i = 0 To 4
      Dim name As String = Path.GetTempFileName()
      Console.WriteLine(name)
      names(i) = name
    Next
    ' 出力例:
    ' C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp688.tmp
    ' C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp689.tmp
    ' C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp68A.tmp
    ' C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp68B.tmp
    ' C:\DOCUME~1\taka-e\LOCALS~1\Temp\tmp68C.tmp

    For i = 0 To 4
      File.Delete(names(i))
    Next
  End Sub
End Class

' コンパイル方法:vbc tempfile.vb
5つの一時ファイルを作成し削除するVB.NETのサンプル・プログラム(tempfile.vb)

 ファイルの削除については、「TIPS:ファイルをコピー/削除/リネーム/移動するには?」を参照していただきたい。実際のアプリケーションでは、GetTempFileNameメソッドにより得られたパス名のファイルをオープンし、データを書き込むことになるだろう。

 なお、一時ファイルが作成される一時フォルダについては「TIPS:一時フォルダ(テンポラリ・フォルダ)を取得するには?」で解説している。End of Article

カテゴリ:クラス・ライブラリ 処理対象:ディレクトリ&ファイル
使用ライブラリ:Pathクラス(System.IO名前空間)
関連TIPS:ファイルをコピー/削除/リネーム/移動するには?
関連TIPS:一時フォルダ(テンポラリ・フォルダ)を取得するには?
 
この記事と関連性の高い別の.NET TIPS
一時ファイル用のランダムなファイル名を生成するには?
一時フォルダ(テンポラリ・フォルダ)を取得するには?
Visual Studio 2005の一時プロジェクトが作成されるフォルダは?
ファイルをコピー/削除/リネーム/移動するには?
ファイルやディレクトリの作成/変更/削除を監視するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間