C#中,MemoryStream在文件资源占用中的应用

在C#开发中,经常遇见资源被占用,无法进行覆盖删除等操作。

以Image类为例,Image.From*方法,都会Lock资源,导致资源无法释放,特别是文件资源。

这时,我们可以先读取文件,然后将文件保存到MemoryStream中,然后再从内存中读取文件。

 MemoryStream ms = new MemoryStream(); 
 Image img = Image.FromFile(Path);
  img.Save(ms, img.RawFormat); 
  img.Dispose();
 Image image = Image.FromStream(ms);
				
时间: 2024-12-29 07:04:29

C#中,MemoryStream在文件资源占用中的应用的相关文章

[UWP]在应用开发中安全使用文件资源

原文:[UWP]在应用开发中安全使用文件资源 在WPF或者UWP应用开发中,有时候会不可避免的需要操作文件系统(创建文件/目录),这时候有几个坑是需要大家注意下的. 创建文件或目录时的非法字符检测 在Windows系统中,我们创建文件时会注意到,某些特殊字符是不可以用作文件名输入的. 那么,同样的,如果你的应用可以提供给用户创建文件/目录的功能,要特别注意的是:你必须对用户键入的文件或者目录名检测,避免用户键入非法字符. 否则,应用可能会遇到下面这个bug:System.IO.FileNotFo

ArcGIS Engine中正确释放打开资源

转自原文 ArcGIS Engine中正确释放打开资源 AE中对MDB,SDE等数据库操作时,打开后却往往不能及时释放资源,导致别人操作提示对象被锁定. 很多帖子说了很多原理,看的也烦且不实用,比如一句话概括的用System.Runtime.InteropServices.Marshal.ReleaseComObject(object o)释放,说的很不清楚,很多人试过觉的释放不掉. 事实上,的确是用该方法,但释放的技巧在于,新建几个AE对象就要逐步释放几个,例如: IWorkspaceFact

SVN 中的忽略文件

SVN 中的忽略文件 在项目中,有些dll是每次项目动态生成的,没有必要提交,项目忽略它! 方法一(最老土) 在每次提交的时候,手动筛选你不需要提交的文件,然后去掉勾,如图: 方法二: 选中要忽略的文件--右击- 如果选中第一个:那么直忽略到a.txt 如果选中第二个:那么将忽略所有的.txt文件 值得注意的是:在种情况下点击提交-那么服务器上原本存在的f.dll 将会消失! 3.全局设置 obj Obj debug release bin Bin Generated_Code ZDSoftTM

XamarinSQLite教程在Xamarin.Android项目中定位数据库文件

XamarinSQLite教程在Xamarin.Android项目中定位数据库文件 实际开发中,经常需要验证数据库操作的正确性.这个时候,需要打开数据库文件,进行确认.下面是如何找到MyDocuments.db文件的具体步骤: (1)在VS的工具栏中找到打开Android设备监视器 (DDMS)按钮,如图1.32所示 (2)单击Open Android Device Monitor (DDMS) 按钮,弹出Android Device Monitor界面,如图1.33所示. (3)选择File

js中clearInterval无效,以及setInterval中断后重新执行

引言: 网页中的效果:网页上向右运动的span,背景图片随着向右移动而不断切换.在鼠标移入图片时,停止向右运动,并改变为特定的背景图片:当鼠标移出时,继续向右移动并不断切换背景图片,直到运动到右端停止运动及图片切换.向右运动以及图片切换效果均是由setInterval周期性调用函数实现,停止运动则需要clearInterval函数实现. 在实现过程中容易出现以下问题: 鼠标移入时不能停止运动,或者是移动速度加快,clearInterval无效:鼠标移出后,运动到最右端不能停止,clearInte

在Linux系统中文件(资源)和用户的管理

一个可执行二进制程序,被加载到内存,被内核调度到CPU上运行,这时候,就表现了一个进程.也可以说进程是程序的一个实例,是程序的动态表现. 在 Linux 系统中进程(process)是有属主的,也就是该进程以哪个用户的身份运行的.大家都知道,程序有输入和输出,也称这为程序IO.如果我们程序数据输入是磁盘.如,Web 服务器,接收用户的请求之后,把网页数据从磁盘中读入加工之后再把数据响应给用户.如果,发起Web 服务进程的用户没有读取该用户请求网页文件的权限.则无法响应用户的请求了.所以,文件(资

NSBundle 读取资源包中的文件

访问项目中资源包里面所有资源使用方法.读取资源包descs.plist文件方法如下: NSBundle *bundle = [NSBundle mainBundle]; //创建bundle对象 NSString *path = [bundle pathForResource:@"descs" ofType:@"plist"]; //获取资源在机器安装后的系统路径 NSArray *allDescs = [NSArray arrayWithContentsofFil

Spring MVC程序中怎么得到静态资源文件css,js,图片文件的路径问题

问题描述 在用springmvc开发应用程序的时候.对于像我一样的初学者,而且还是自学的人,有一个很头疼的问题.那就是数据都已经查出来了,但是页面的样式仍然十分简陋,加载不了css.js,图片等资源文件,如果你输入某个css的文件在浏览器中得到的直接是404错误(例如http://localhost:8080/iMax_view/css/classify.css),表示路径肯定没有错,这是因为你在web.xml中配置的springservlet ]<!-- springmvc前端控制器,rest

JavaWeb中读取文件资源的路径问题 -- 转自新浪博客

在做javaweb开发的时候,我们可能会需要从本地硬盘上读取某一个文件资源,或者修改某一个文件,这个时候就需要先找到这个文件,然后用FileInputStrem等文件字节.字符流来将这个文件读取到内存中,再对其进行修改等的操作.那么在找这个文件的过程中就涉及到一个路径的问题--->怎么正确的找到这个文件呢? 有两种可行的方法:一.绝对硬盘路径:二.相对路径..来来来,我们掰扯一下这两种方法的不同------- 一.硬盘绝对路径 如图,我的E盘下面有个path文件夹,里面有一个1.txt的文件,,