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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值