这是我的Picture.cs类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Drawing; namespace SharpLibrary_MediaManager { public class Picture:BaseFile { public int Height { get; set; } public int Width { get; set; } public Image Thumbnail { get; set; } /// <summary> /// Sets file information of an image from a given image in the file path. /// </summary> /// <param name="filePath">File path of the image.</param> public override void getFileInformation(string filePath) { FileInfo fileInformation = new FileInfo(filePath); if (fileInformation.Exists) { Name = fileInformation.Name; FileType = fileInformation.Extension; Size = fileInformation.Length; CreationDate = fileInformation.CreationTime; ModificationDate = fileInformation.LastWriteTime; Height = calculatePictureHeight(filePath); Width = calculatePictureWidth(filePath); } } public override void getThumbnail(string filePath) { Image image = Image.FromFile(filePath); Thumbnail = image.GetThumbnailImage(40,40,null,new IntPtr()); } private int calculatePictureHeight(string filePath) { var image = Image.FromFile(filePath); return image.Height; } private int calculatePictureWidth(string filePath) { var image = Image.FromFile(filePath); return image.Width; } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace SharpLibrary_MediaManager { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string folderPath = @"D:\Images\PictureFolder"; private void button1_Click(object sender,EventArgs e) { DirectoryInfo folder = new DirectoryInfo(folderPath); List<Picture> lol = new List<Picture>(); foreach (FileInfo x in folder.GetFiles()) { Picture picture = new Picture(); picture.getFileInformation(x.FullName); lol.Add(picture); } MessageBox.Show(lol[0].Name); } } }
我得到了Out Of Memory异常,我真的不知道为什么.这是我第一次做这样的事情所以我对批处理文件处理等很陌生.
有帮助吗?