.Net的IO中,有个静态方法是生成一个临时文件:
public static string Path.GetTempFileName();
对比java中生成临时文件的方法:
public static File File.createTempFile (String prefix, String suffix, File directory);
确实是C#的太差了;java 的可以指定前缀和后缀,还可以指定生成目录,多方便啊。
既然.Net平台没有提供这样的方法,那么我们就自己来实现:
public static string GetTempFileName(string extension)
{
string tempFileName = Path.GetTempFileName();
string newTempFileName = Path.ChangeExtension(tempFileName, extension);
File.Move(tempFileName,newTempFileName);
return newTempFileName;
}
public static string GetTempFileName(string prefix, string extension)
{
return GetTempFileName(prefix, extension, null);
}
/// <summary>
/// 生成临时文件
/// </summary>
/// <param name="prefix">前缀</param>
/// <param name="extension">文件后缀名,包含前导句点('.')</param>
/// <param name="directory">指定在该目录下生成,默认用户目录下的临时目录</param>
/// <returns>临时文件的完整路径</returns>
public static string GetTempFileName(string prefix, string extension, string directory)
{
string tempFileName = string.Empty;
if (string.IsNullOrEmpty(directory))
{
directory = Path.GetTempPath();
}
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
tempFileName = prefix + Guid.NewGuid().ToString() + extension;
tempFileName = Path.Combine(directory, tempFileName);
FileStream fs = new FileInfo(tempFileName).Create();
fs.Close();
return tempFileName;
}