在托管C++ 中使用Temp 文件
程序中有时避免不了要使用临时文件,但在微软的.NET新平台中,许多编程者还未利用Path对象的便利条件来处理临时文件,仍然手工确定应用程序当前目录中的唯一文件名,并在程序用完之后删除。
本文要演示的技巧,是通过使用Path类,以一两行的代码,就可完成下述任务:
1、 定位“temp”目录。
2、 创建唯一的、优化过的临时文件。
3、 使用完后删除临时文件。
定位“Temp ”目录
要确定“temp”目录,可使用Path::GetTempPath静态方法,此处重点要注意的是,需把对此方法的调用,放在一个try/block块中,因为基于当前用户的权限,很可能会抛出一个SecurityException(安全异常)。
using namespace System::Security;
using namespace System::IO;
...
String tempFolder;
try
{
tempFolder = Path::GetTempPath();
}
catch(SecurityException* ex)
{
//很可能意味着你没有所需的权限
}
catch(Exception* ex)
{
//处理其他所有异常
}
         创建并优化临时文件
在此可使用Path::GetTempFileName来得到临时文件的唯一名称,这个方法会创建一个文件,并返回最近创建的文件名。
文件属性被设为“存档”,实质上为了防止 .NET对它进行优化,因此,如果把文件属性改为其他的,就可以从 .NET运行时(runtime)缓存中得到一小点的性能提升。
一开始,要使用临时文件名来构造一个FileInfo对象,并设置FileInfo的Attributes为FileAttributes::Temporary:
using namespace System::Security;
using namespace System::IO;
...
String* fileName;
fileName->Empty;
try
{
//创建一个长度为零的临时文件
fileName = Path::GetTempFileName();
//把文件属性设为“Temporary”以获得更好的性能
FileInfo* myFileInfo = new FileInfo(fileName);
myFileInfo->Attributes = FileAttributes::Temporary;
...
}
catch(Exception* ex)
{
//处理异常
}
         使用及删除临时文件
一旦创建了临时文件,就可像使用其他文件一样使用它,例如,可在上面的try/block块中插入以下代码,其使用了StreamWriter类在临时文件中写入一条简单的字符串:
//向临时文件中写入数据
StreamWriter* writer = File::AppendText(fileName);
writer->WriteLine("A test sample data");
writer->Flush();
writer->Close();
写入的数据可通过下面的StreamReader读取,在此,可把整个文件的内容都读入到一个String对象中:
StreamReader* reader = File::OpenText(fileName);
最后,在使用完了临时文件,可用File::Delete来删除,只需简单地传递进文件名就行了:
File::Delete(fileName);

在托管C++中使用Temp文件相关推荐

  1. win7临时文件_Win7系统电脑当中的temp文件是如何清理的?

    Win7系统电脑中的temp文件改如何清理?我们使用电脑的过程当中经常会浏览一些网页,而在浏览网页的过程中会产生一些临时文件,而这些临时文件都是保存在temp文件夹当中的,那么我们应该怎么清理temp ...

  2. 解决tomcat中temp文件夹出现项目的副本的情况

    解决tomcat中temp文件夹出现项目的副本的情况 TomcatMyeclipseXMLGoogle  在最近开发过程中出现过这样的情况,当我在myeclipse发布项目的时候,在tomcat的te ...

  3. 如何自动将AI Studio中的GIF文件上载到CSDN?

    ▲ 图1 旋转的数字 简 介: 本文给出了自动将AI Studio工作环境中的GIF目录下的动图图片完成压缩,下载并上载到CSDN的整个过程.给出了实现的详细代码.利用这个工具便可以完成更加丰富多彩的 ...

  4. Linux 中如何复制和删除文件夹中的所有文件?

    Linux 中如何复制和删除文件夹中的所有文件? 1.复制文件 目标文件目录必须存在 (1) 直接复制 cp /hone/user/temp/test.c /home/user/ (2) 复制并重命名 ...

  5. arm中的.a文件如何产生的_可变文件系统:如何在IPFS中处理文件?

    IPFS或星际文件系统是一种点对点(P2P)网络协议,用于共享分布式Web上的数据.顾名思义,您可以将IPFS视为文件系统,它具有一些独特的特性,使其成为安全,分散式共享的理想选择. 在这里您可以了解 ...

  6. Git的简单使用以及在Django中有关日志文件的忽略

    Git的简单使用以及在Django中有关日志文件的忽略 1.三个程序简介 2.Git配置 2.1Git查看配置 2.2git查看本地系统配置 2.3git查看用户配置的 2.4git配置用户名 2.5 ...

  7. WEB中的敏感文件泄露

    文件泄露,根据泄露的信息敏感程度,在WEB漏洞中可以算是中危甚至高危的漏洞,本篇文章就来 介绍下一些常见的泄漏, 主要分为由版本管理软件导致的泄露, 文件包含导致的泄露和配置错误导致的泄露. 版本管理 ...

  8. 中查询一个文件夹下文件数量_如何在 Bash 中使用循环 | Linux 中国

    使用循环和查找命令批量自动对多个文件进行一系列的操作.-- Seth Kenlon(作者) 人们希望学习批处理命令的一个普遍原因是要得到批处理强大的功能.如果你希望批量的对文件执行一些指令,构造一个可 ...

  9. 使用.NET Core 3.1构建Windows Worker服务以删除文件夹中的旧文件

    目录 免责声明 介绍 解决方案 添加配置设置 添加带有文件夹列表的配置文件 我们的代码 将应用程序转换为Windows服务 创建Windows服务曾经是一个繁琐的过程,但是随着.NET Core 3. ...

最新文章

  1. 循环神经网络实现文本情感分类之Pytorch中LSTM和GRU模块使用
  2. Windows 任务管理器进程详解
  3. KubeCon 北美前瞻|在 2020 最后,容器领域有哪些值得你关注的话题?
  4. python bytes()函数
  5. CentOS如何挂载硬盘
  6. httpclient封装获取响应实体_Httpclient 接口自动化
  7. [zz]linux下DHCP服务器配置(使用Ubuntu LTS 8.04)
  8. 智能车路径提取matlab_遗传算法求解多车型车辆路径问题
  9. mongoose使用简记
  10. 在面向服务的设计时有四个原则:
  11. 微信小程序 轮播图展示,图片全屏显示
  12. 计算机pc610台湾研华,IPC610-研华610工控机配置
  13. 十年感悟之 python之路
  14. 【Python + selenium】在浏览器打开新页签,打开方式
  15. 暗藏在 win10 里的 3D 资源宝库
  16. 台山一中2021高考成绩查询,台山高考状元亮相!今年台山各校高考“战况”如何?快来睇......
  17. Verizon 宣布 48 亿美元收购雅虎核心业务
  18. 浏览器点击下载文件时,后端重命名文件名
  19. Markdown教程--Markdown列表
  20. 8项技能9种武器 打造企业增长黑客

热门文章

  1. 微信塔防小游戏开发教程,唤境引擎制作塔防游戏分享
  2. html判断cookies ph,【教程】如何利用IE9的F12去分析网站登陆过程中的复杂的(参数,cookie等)值(的来源)...
  3. 指针数组的概念和定义方式
  4. 计算机一级证书截屏,Windows电脑上截图的4个方法
  5. DFA和NFA的五元组定义,DFA和NFA的区别
  6. Ubuntu配置中文输入法
  7. 安卓APP全局黑白化实现方案
  8. 女大学生卫生间产下男婴 因害怕将其从6楼扔下
  9. linux系统中VIM编辑器推荐安装插件
  10. grasp介绍、应用及学习心得