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 ...
随机推荐
- mybatis-属性名和查询字段名不相同的解决方案
1.使用别名 resultType可以将查询结果直接映射为实体bean对象的条件是,sql查询的字段名和实体bean的属性名一致,通过反射机制完成对象的创建. select tid id,tname ...
- 【Tomcat】ubuntu系统安装Tomcat
Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,支持最新的Servlet 2.4 和JSP 2.0 规范,在中小型系统和并发访问用户不是很多的场 ...
- JSON::ParserError - 416: unexpected token at
rm -rf ~/.cocoapods/repos/Spec_Lockandrm -rf ~/.cocoapods/repos/trunk/
- JAVA课程设计(附源码)
Java课程设计选题 Java课程设计说明 本次课程设计的目的是通过课程设计的各个项目的综合训练,培养学生实际分析问题.编程和动手能力,提高学生的综合素质.本课程设计尝试使用一些较生动的设计项目,激发 ...
- json转化 ts定义网页工具
json转化 ts定义 https://transform.tools/json-to-typescript
- MySQL的MDL锁
MDL锁的概念和分类 1.MDL类型 锁名称 锁类型 说明 适用语句 MDL_INTENTION_EXCLUSIVE 共享锁 意向锁,锁住一个范围 任何语句都会获取MDL意向锁, 然后再获取更强级别的 ...
- QSlider CSS样式
QSlider::groove:horizontal{ border:0px; height:15px; background:#deffe5; } QSlider::sub-page:horizon ...
- 你能谈谈HashMap怎样解决hash冲突吗
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样. 当程序试图将多个 key-value 放入 HashM ...
- Assetbundle 打包加载场景
public class CreateAssetBundle : Editor{ // 打包unity场景文件 [MenuItem("Assets/Build AssetBundle Sce ...
- git reset 加不加 --hard的区别
通常我们提交代码一般都是 git add ,git commit -m, git push的这么个流程.添加到暂存区,提交到git库生成版本号,push到远程仓库以供他人可以使用.这是一个完整的且 ...