C#生成指定后缀名的临时文件

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

.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);
}


/// 
/// 生成临时文件
/// 
/// 前缀
/// 文件后缀名,包含前导句点('.')
/// 指定在该目录下生成,默认用户目录下的临时目录
/// 临时文件的完整路径
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;
}

转载于:https://my.oschina.net/yunfound/blog/136469

你可能感兴趣的:(c#,java,python)