wpf遍历文件夹获取所有图片路径后,怎么关闭图片流
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf遍历文件夹获取所有图片路径后,怎么关闭图片流相关的知识,希望对你有一定的参考价值。
我提取了路径后,要对图片进行例如删除,移动位置的操作,可是会显示图片已在进程中打开,必须关掉进程才能删除,这样比较麻烦,怎么关闭图片流?
在你的截图里面,files应该是fileinfo类型的,用完以后要dispose,或者用using结构,就不再占用了。 参考技术A 发下图片流声明的代码和错误提示的代码追问我想加一个按钮,实现删除某一张图片的功能,但是会显示,图片正被进程使用,不能删除
WPF中 如何将图片文件夹下的image图片转化成二进制byte[] 文件
如图,我想在xaml.cs 文件中写个方法,把pic 文件夹下某个png 或者jpG图片转化成byte[]二进制文件,请问怎么写,最好要完整的代码,谢谢 !
参考技术A 试试这个:将pic文件的所有图片的生成方式设为Resource,首先获取流,
StreamResourceInfo info = Application.GetResourceStream(new Uri("pic/xx.jpg",UriKind.Relative));
Stream stream=info.Stream;
然后将流读入字节数组中,
byte[] buffur = new byte[stream.Length];
stream.Read(buffur, 0, buffer.Length); 参考技术B private byte[] FileContent(string fileName)
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
try
byte[] buffur = new byte[fs.Length];
fs.Read(buffur, 0, (int)fs.Length);
return buffur;
catch (Exception ex)
return null;
finally
if (fs != null)
//关闭资源
fs.Close();
记得带上IO命名空间
追问你回答的i很专业,但是您这样的方法我也试过,只是没成功,遇到的问题是 filename的文件名该如何确定,比如我的pic文件夹有个xx.jpg文件,那有什么方法确定filename
追答首先你先把文件下制定的图片路径提取出来。用System.IO.Directory.GetFiles()。
首先你先把文件下制定的图片路径提取出来。用System.IO.Directory.GetFiles()。
追问用 DirectoryInfo 或者 directory 这种方法都找不到图片,因为项目编译过后pic/xx.jpg 这个文件是在用户的电脑上是找不到的,因为我没有把"pic/xx.jpg "放在Debug的根目录下面,而是包含在编译过后的exe文件里面的,不知道我解释的是否清楚,不知道能否用 pack://application:,,,/pic/xx.png 这种方法实现,谢谢!
本回答被提问者和网友采纳 参考技术C 楼上已经实现的你要的。FileStream fs = new FileStream(imagepath, FileMode.Open);
byte[] byData = new byte[fs.Length];
fs.Read(byData, 0, byData.Length);
fs.Close();
return byData;
不知道你的追问是不知道File去遍历还是知道FileName 但是找不到完整路径。你要遍历文件夹就
DirectoryInfo info =new DirectoryInfo("../pic");
foreach(File file in info.GetFiles)
file.FullName 就是你要的File路径。
追问
用 DirectoryInfo 或者 directory 这种方法都找不到图片,因为项目编译过后pic/xx.jpg 这个文件是在用户的电脑上是找不到的,因为我没有把"pic/xx.jpg "放在Debug的根目录下面,而是包含在编译过后的exe文件里面的,不知道我解释的是否清楚,不知道能否用 pack://application:,,,/pic/xx.png 这种方法实现,谢谢!
追答编译在项目中的就是加载到项目资源文件中去了,可以通过Resources获取
以上是关于wpf遍历文件夹获取所有图片路径后,怎么关闭图片流的主要内容,如果未能解决你的问题,请参考以下文章