利用temp文件实现原子操作

在网络中有一张图片叫做test.jpg,它的大小为2M

我们一边下载一边往本地保存,不幸的是在下载到一半的时候设备断电了。这就造成一个悲剧:本地存在一个损坏的test.jpg
在加载图片的时候,我们常用的操作步骤是:
1 判断图片是否存在
2 加载图片

不幸的是,第一步的结果是该图片存在;但在第二步加载图片的时候失败了因为被损坏的图片是不能显示的。

所以我们要防止图片的损坏。
其中的一种方法可以这样:
下载时将图片存为test.temp至本地,当下载完成后才将其名称改为test.jpg
这样可实现近似的原子操作,避免加载破损的图片

在此只是以图片举例,其他文件操作也可如此实现

时间: 2024-10-22 23:41:55

利用temp文件实现原子操作的相关文章

在托管C++中使用Temp文件

  在托管C++中使用Temp文件              程序中有时避免不了要使用临时文件,但在微软的.NET新平台中,许多编程者还未利用Path对象的便利条件来处理临时文件,仍然手工确定应用程序当前目录中的唯一文件名,并在程序用完之后删除.          本文要演示的技巧,是通过使用Path类,以一两行的代码,就可完成下述任务:   1. 定位"temp"目录. 2. 创建唯一的.优化过的临时文件. 3. 使用完后删除临时文件.   定位"Temp"目录

在Delphi中巧妙利用RES文件

在Delphi项目中,通常有一个与项目名称主文件名相同的.RES文件,该文件用于保存应用程序图标等资源,对应于此文件,在项目文件中一定含有编译指示"{$R *.res}",告诉编译器编译时需要包含与项目主文件名相同的.RES文件. 同样,如果需要在应用程序中以资源形式包含任何文件类型,也可以利用.RES文件.本文将告诉你如何利用RES文件在Delphi程序内部包含文件. 一创建.RES文件 这里以一组音频文件为例.首先用记事本等任何文本编辑器编写文件"MyMusic.RC&q

Delphi中利用INI文件实现界面无闪烁多语言切换

越来越多的程序使用了多国语言切换,虽然DELPHI自带多语言包的添加和配置,但是那种方法在切换语言时界面会出现闪烁,而且实现起来很麻烦,这里我介绍给大家的是利用INI文件来读取界面的语种文字,用这种方法,不但简单易行,而且在切换的时候不会出现界面的闪烁. 我们从一个例子出发,看看怎么实现语言的切换.首先建立一个新工程.放置如下组件: MainMenu1: TMainMenu; File1: TMenuItem; Exit1: TMenuItem; Label1: TLabel; Button1:

XP系统如何设置自动清理Temp文件夹

XP系统如何设置自动清理Temp文件夹   自动清理方法: 1.在D盘建立D:UserDataTEMP目录 02.右击"我的电脑","属性","高级",打开"环境变量"对话框,将用户变量和系统变量都改为D:UserDataTEMP. 03.新建一个文本文档,在里面写入两行代码: RD %TEMP% /S/Q MKDIR %TEMP% 然后另存为*.bat格式(比如CleanTEMP.bat),这样只要打开一下CleanTEMP

WinXP如何自动清理Temp文件夹以提高系统运行速度

  WinXP中的Temp文件夹也就是系统的临时文件夹,主要就是存储一些平时产生的临时文件,这些临时文件如果你没有及时清理,就会越积越多,浪费了磁盘的空间,还会对系统造成磁盘碎片,影响了系统的读写运行速度.如何清理这些Temp文件夹呢?也许你会用软件清理,但是软件本身也会造成Temp文件夹堆积,因此我们还应当学会手动清理. 自动清理方法: 1.在D盘建立D:UserDataTEMP目录 02.右击"我的电脑","属性","高级",打开"

Win7系统打开IE浏览器后自动生成TEMP文件夹该怎么办?

  最近遇到一个问题,打开IE浏览器桌面上生成TEMP文件夹,删除TEMP文件夹后,重新打开浏览器后,TEMP文件夹又重新出现.每次打开后都要删除,真的是太麻烦了,是什么原因造成了这个问题的?我的电脑是win7系统的,和电脑系统有关系吗? 没关系,造成这个问题的主要原因是IE浏览器历史文件和缓存目录引起的,我们只需要复原IE浏览器就可以解决问题了,下面跟随小编脚步看看具体解决方法. 1.在Win7系统上点击IE浏览器,然后在IE浏览器上点击"工具"-"Internet选项&q

win7电脑打开浏览器自动生成TEMP文件夹怎么办

  1.在Win7系统上点击IE浏览器,然后在IE浏览器上点击"工具"-"Internet选项";   2.然后在internet选项窗口上,切换至"常规"选项卡中,然后点击历史记录处的"设置"按钮;   3.历史浏览记录窗口上,查看历史浏览记录和临时文件目录是否指向桌面Desktop文件夹,可以重新设置别的文件夹为系统默认文件夹; 4.点击"移动文件夹"按钮,来浏览临时文件夹,再点击确定按钮保存. 按照上

ios-iOS利用脚本文件重新签名替换ipa包

问题描述 iOS利用脚本文件重新签名替换ipa包 提供母包ipa,发布描述文件和开发描述文件,以及脚本文件,以终端命令替换ipa为该描述文件下的新ipa之后,只能安装在iOS8.1以下的手机上面,安装在iOS8.1.3的系统上,总是提示安装失败....希望得到大神的解答.... 解决方案 http://www.olinone.com/?p=198完美解决,记得点赞啊! 解决方案二: 8.1.3系统做了限制,无法解决.

html5-css font 定义图标,利用woff文件,IIS下却无法显示图标

问题描述 css font 定义图标,利用woff文件,IIS下却无法显示图标 css font 定义图标,利用woff文件,再VS里面直接运行页面可以正常显示图标,在IIS下运行 却不显示图标,woff文件也有在IIS注册了.web.config也有配置,是什么问题呢?