我有一个应用程序使用C://根文件夹。此文件夹包含图像。这些图像由Pictureboxes引导。
图像每10秒从linux机器出来。 Windows在一个线程中显示这些图像。
有时,linux或windows发送异常。因为当其中一个试图读取图像显示(windows)时,另一个试图保存图像(linux)
因此,我必须明白,如果Linux机器使用Image_1.jpg,请不要尝试以win形式显示图像。
但是怎么样?
答案 0 :(得分:1)
在Win Forms应用程序中,打开要读取的文件,并与其他进程共享该文件,以便他们可以继续读取/写入文件。
使用File.Open Method (String, FileMode, FileAccess, FileShare)执行此操作。
如果您只使用File.Open Method (String, FileMode)或File.Open Method (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
}