Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Image.from文件启动';跳过';文件夹_C# - Fatal编程技术网

C# Image.from文件启动';跳过';文件夹

C# Image.from文件启动';跳过';文件夹,c#,C#,我正在将一组文件加载到一个列表视图中,并使用Image.FromFile()和.Width和.Height在指定列中显示每个文件的分辨率。但是,每当我加载超过几个文件时,这个方法就会开始跳过文件。首先,假设50个文件都已正确加载,但此后会跳过越来越多的文件 是什么导致了这个问题,有没有更好的替代方法?这种方法也大大降低了加载过程的速度,所以希望这个过程能加快一点 编辑:对不起。。。以下是相关代码: private void AddItem(string file) { FileInfo

我正在将一组文件加载到一个
列表视图中,并使用
Image.FromFile()
.Width
.Height
在指定列中显示每个文件的分辨率。但是,每当我加载超过几个文件时,这个方法就会开始跳过文件。首先,假设50个文件都已正确加载,但此后会跳过越来越多的文件

是什么导致了这个问题,有没有更好的替代方法?这种方法也大大降低了加载过程的速度,所以希望这个过程能加快一点

编辑:对不起。。。以下是相关代码:

private void AddItem(string file)
{
     FileInfo fi = new FileInfo(file);
     ListViewItem item = new ListViewItem(fi.FullName);

     try
     {
          Image img = Image.FromFile(fi.FullName);
          item.SubItems.Add(string.Format("{0} x {1}", img.Width, img.Height));
     }

     catch { }

     ((ListView)sender).Items.Add(item);
}


try/catch方法旨在防止非映像文件出错。然而,他们似乎也对跳绳问题负有“责任”。当我禁用它们时,我得到一个“内存不足”错误,这似乎是这里的真正原因。

你真的应该
处理
。啊。。。当然是的,这解决了内存问题。速度怎么样?有没有办法加快加载过程?好吧,为了提高速度,你能打开图像文件中的元数据并解析它而不是解压缩整个图像吗?例如,看看JFIF和PNG文件格式:您可能能够读取所需的信息,而无需解压缩开销。对于JPEG,它们不直接包括文件大小;您必须查看Adobe图像资源块。好的,我找到了以下解决方案:。它工作得很好:)再次感谢。;