[C#] Creating Temporary Files and Locating the Temp Folder (Path.GetTempFileName)

When you want to save temporary work data (such as cache, logs, or intermediate files during a download) while an application is running, it is common to use the system’s standard “Temp” folder. By using the Path.GetTempFileName method, you can automatically create an empty file with a “unique name that does not conflict” inside the temporary folder and retrieve its full path.

目次

Table of Contents

  • Lifecycle Implementation of Temporary Files
  • Sample Code
  • Execution Result (Example)
  • Explanation and Technical Points

Lifecycle Implementation of Temporary Files

The following code demonstrates the process of creating a temporary file, writing data to it, performing a process, and finally ensuring the file is deleted.

Sample Code

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        // 1. Get the path of the system's temporary folder
        // On Windows, this is usually C:\Users\Username\AppData\Local\Temp\
        string tempDir = Path.GetTempPath();
        Console.WriteLine($"Temporary Folder: {tempDir}");

        // 2. Generate a temporary file
        // An empty file (0 bytes) is created on the disk the moment this method is executed
        string tempFilePath = Path.GetTempFileName();
        Console.WriteLine($"Created Temporary File: {tempFilePath}");

        try
        {
            // 3. Use the temporary file
            // Here, we will try writing some text data
            Console.WriteLine("--- Writing data ---");
            File.WriteAllText(tempFilePath, "Temporary Processing Data: 12345");

            // Verify the content
            string content = File.ReadAllText(tempFilePath);
            Console.WriteLine($"Read Content: {content}");
        }
        finally
        {
            // 4. Cleanup (Important)
            // Files created with Path.GetTempFileName are not deleted automatically.
            // Always make sure to delete the file after use.
            if (File.Exists(tempFilePath))
            {
                File.Delete(tempFilePath);
                Console.WriteLine("--- Temporary file deleted ---");
            }
        }
    }
}

Execution Result (Example)

Temporary Folder: C:\Users\UserName\AppData\Local\Temp\
Created Temporary File: C:\Users\UserName\AppData\Local\Temp\tmpA1B2.tmp
--- Writing data ---
Read Content: Temporary Processing Data: 12345
--- Temporary file deleted ---

Explanation and Technical Points

1. Behavior of Path.GetTempFileName

This method does more than just “create a filename string”; it actually creates the file on the disk. This prevents name conflicts with other programs. The generated file names follow a format like tmpXXXX.tmp.

2. Importance of Deletion

Temporary files created by this method are not automatically deleted by the OS or the .NET runtime. If left alone, junk files will continue to accumulate in the temporary folder. Therefore, you should design your code to delete the file using File.Delete after processing is finished, typically using a try-finally block.

3. Difference from Path.GetRandomFileName

If you do not want to “create” a file but simply need a “random file name (string),” use Path.GetRandomFileName(). This method does not write anything to the disk.

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次