C# 图片 等 文件 读取操作 的一点提示
源于:在读取图片时,总喜欢首先采用:Image img=Image.FromFile("");操作,这种方式由于 调用图片的程序与图片文件是通过 绝对地址关联的,会造成 当前进程或其它进程无法对该图片 进行类似的操作[提示文件正在使用中]...
回想曾经有过的做法,即将图片数据读取到内存中,再进行显示等相关操作,这样就让程序与其图片地址没有直接的操作关联...从而达到重复对图片进行读取,校验...等可能的操作步骤...
注:其它文件类型的操作估计也有可能会出现相同的境遇和无奈...
----------
----有过教训,但不曾重视,或不曾记得...所以,还是笔记下来,顺便博客一下...以后方便查询,巩固...
以下是参考代码:
/// <summary>
/// 此方法加载的图片,由于与文件地址绑定,且作为打开读取状态,所以不能进行再次对文件处理的操作...[会提示正在使用中]
/// 所以,建议使用 Frm2(pth),通过将其读取到流中,并在读取完成后记得关闭流...就可以再次重复相同或类似的相同文件读取处理操作
/// </summary>
/// <param name="pth"></param>
/// <returns></returns>
private static Image Frm(string pth)
{
Image img = Image.FromFile(pth);
return img;
}
/// <summary>
/// 建议使用
/// 测试:正确
/// 时间:202106172300
/// </summary>
/// <param name="pth"></param>
/// <returns></returns>
public static Image Frm2(string pth)
{
FileStream fs = new FileStream(pth, FileMode.Open);
return Frm2(fs);
}
/// <summary>
/// 建议使用
/// 测试:正确
/// 时间:202106172300
/// </summary>
/// <param name="strm"></param>
/// <returns></returns>
public static Image Frm2(Stream strm)
{
Image img = Image.FromStream(strm);
strm.Close();
return img;
}
暂时只考虑到此种方法...
交流 QQ : 2412366909@qq.com
手机号码:177-7499-4428
注:本人使用过程中暂未发现造成存取不正确的问题
C# 图片 等 文件 读取操作 的一点提示的更多相关文章
- Perl中文件读取操作
Perl中文件读取操作 http://blog.csdn.net/yangxuan12580/article/details/51506216
- java 的文件读取操作
/** * @param filePath 文件的全路径 * 返回我们读取到的文件内容 * **/ public static String readFile(String filePath) { F ...
- python文件读取操作、序列化
1.对文件进行读写操作时,先建立文件句柄 f = open("test.txt","r",encoding="UTF-8") 其中,r为文件 ...
- PHP大文件读取操作
简单的文件读取,一般我们会使用 file_get_contents() 这类方式来直接获取文件的内容.不过这种函数有个严重的问题是它会把文件一次性地加载到内存中,也就是说,它会受到内存的限制.因此,加 ...
- Python学习日记之文件读取操作
Python内置了文件读写的函数open,read 用法示例: open('/home/root/files.txt ') 在打开文件后,操作完成后可以使用close()关闭文件,但比较好的文件读写方 ...
- day08 学习小测试 九九乘法表 车牌划分计算 大文件读取操作
1.1需求:读取一个100G的文件,检测文件中是否有关键字keys=['苍老师','小泽老师',"alex"], 如果有则替换成"***",并写入到另一个文件中 ...
- python文件读取操作
#IO操作 #模拟账号登录 data = [] #0=userName 1=password obj = open("login.txt","r") for l ...
- 〖Linux〗proc的一些文件读取操作
/* * ===================================================================================== * * Filen ...
- UWP中的文件相关操作
最近开始做UWP开发,图省事儿就把自己之前一个Winform项目的一部分代码拷贝到了新写的UWP项目中来.整出了一些幺蛾子,下面做一个记录. 首先提一个重点就是:UWP里关于文件的操作尽量用Stora ...
- html5文件读取+按钮样式重置+文件内容预览
FileReader读取文件详细介绍请访问:http://www.cnblogs.com/xyyt/p/9066882.html FileReader提供了如下方法: readAsArrayBuffe ...
随机推荐
- ubuntu 铺满桌面 调整字体 安装firefox中文版
ubuntu 铺满桌面 安装 open-vm-tools sudo apt-get install open-vm-tools sudo apt-get install open-vm* . rebo ...
- Cocoapods的简单介绍和使用
1.Cocoapods运行环境和gem命令 1.1 Ruby运行环境和gem命令 Mac自带Ruby环境.如果gem版本太旧,可以使用以下指令升级到最新: sudo gem update --syst ...
- wrf-python离线安装
由于客户环境不能联网,python的插件库只能离线安装,wrf库的安装中踩了不少坑,特此记录. 1.官方插件库pypi.org只有压缩包,没有提供wheel,在线安装没有问题. 2.下载压缩包解压后, ...
- JavaScript 基础学习(一)
JavaScript基础学习(一) 一.JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件 ...
- java 守护线程的关闭
在进程内所有用户线程 全部消亡后,如果 守护线程仍在执行 ( 注意: 守护线程并不是一直运行中,守护线程中的代码执行完毕,则守护线程自然消亡. ),则会被强制消亡.
- 【C++复习】第七章 类的继承(基类、派生类、虚基类)
1.基类与派生类 类的继承:面向对象的程序设计中提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具体.更详细的定义 用途:代码的重用性(继承)和可扩充性(派生) 例:植物大战僵尸游戏中, ...
- CSS3 box-shadow盒子阴影
inset | offset-x | offset-y | blur-radius | spread-radius | color 阴影在边框内 x轴 y轴 模糊半径 扩散半径 阴影颜色 inset: ...
- js两个数组对象中,获取不相同的值 非交集元素对象
查看前端面试题小程序 大量面试题和答案,请微信查看 var array1 = [ {"Num": "A " },{"Num": " ...
- 044_Schedule Job 间隔时间自动执行
需求:系统上的标准功能是能够设置间隔一天的执行,或者是写完代码着急测试我们写个5分钟后执行的: 但是遇到要求没间隔一小时或者十分钟执行,该怎么处理呢? global class **_Retrieve ...
- LVS+keepalived实现负载均衡&高可用(原来以及部署方法)
一.ARP技术概念介绍 为什么讲ARP技术,因为平常工作中有接触.还有就是LVS的dr模式是用到arp的技术和数据. 1.什么是ARP协议 ARP协议全程地址解析协议(AddressResolutio ...