我有一个应用程序使用C://root文件夹。此文件夹包含图像。这些图片由图片框读取。
每10秒就会有来自linux机器的图像。Windows在线程中显示这些图像。
有时,linux或windows会发送异常。因为当其中一个试图读取图像以显示(Windows)时,另一个试图保存映像(Linux)。
因此,我必须理解,如果linux使用Image_1.jpg,不要试图以win形式显示图像。
但是怎么做呢?
发布于 2013-03-21 11:21:10
在Win Forms应用程序中,打开文件进行读取,并与其他进程共享该文件,以便它们能够继续读取/写入文件。
使用File.Open方法(String,FileMode,FileAccess,FileShare)进行此操作。
如果您只使用File.Open方法(String,FileMode)或File.Open方法(String,FileMode,FileAccess),那么文件将被取消共享。
通过分享,你应该保持ftp方面的事情快乐。
如果在Windows中打开文件时遇到异常,那就好了。抓住这个异常,很快再试一次。
成功打开文件时,请检查最后两个字节是否为FF D9。在这种情况下,您的JPG已经完成上传。
这是一些伪代码。
success = false
using (FileStream fs = File.Open(path, // eg your Image1.jpg
FileMode.Open,
FileAccess.Read, // we just need to read
FileShare.ReadWrite)) // important to share!
{
// if last two bytes are FF D9 then
// success = true... can display image now
}
if (!success)
{
// file is being uploaded, or some other problem occurred
// try again later
}https://stackoverflow.com/questions/15543997
复制相似问题