如何使用Filestream读取目录中的所有jpeg文件,以便文件不被锁定?我目前的代码如下,没有提到Filestream,因为我无法让它工作。非常感谢您的帮助。
public Form1()
{
InitializeComponent();
images = new List<Image>();
// add images
DirectoryInfo di = new DirectoryInfo(@"\\server\files\");
FileInfo[] finfos = di.GetFiles("*.jpg", SearchOption.TopDirectoryOnly);
foreach (FileInfo fi in finfos)
images.Add(Image.FromFile(fi.FullName));
}
private void buttonNext_Click(object sender, EventArgs e)
{
index++;
if (index < 0 || index >= images.Count)
index = 0;
pictureBox1.Image = images[index];
int count = index + 1;
labelCount.Text = "Showing " + count.ToString() + " of " + images.Count;
}
答案 0 :(得分:3)
您需要致电Open
并传递FileShare.ReadWrite
:
using (var stream = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
images.Add(Image.FromStream(stream));
答案 1 :(得分:1)
锁定文件的Image.FromFile方法。作为替代方案,您可以尝试将文件内容读入缓冲内存流,然后使用Image.FromStream从此流加载图像。