/// <summary> /// To be used with transactions. /// Saves all the images inside the folder with this path-name /// under the given Category. No deep loading. /// </summary> /// <param name="cmd">The command object asociated with a transaction.</param> /// <param name="parent">the target category</param> /// <param name="folderName">the folder full path</param> internal static void loadFromFolder(SqlCommand cmd, Category parent, string folderName, LoadInfoViewer viewer) { string[] fileNames = getFileNames(folderName); int count = 0; for (int i = 0; i < fileNames.Length; i++) { Image img = new Image(fileNames[i], parent); viewer.Invoke( new ShowFilenameDlegate(viewer.showFileName), new object[] {fileNames[i]} ); saveImage(cmd, img, fileNames[i]);// transactional save count++; int percent = (count*100)/fileNames.Length; viewer.Invoke( new ShowProccessDlegate(viewer.showProccess), new object[] {percent} ); img = null; } fileNames = null; System.GC.Collect(); }
internal static void deepLoadFromFolder(SqlCommand cmd, Category parent, string fileName, LoadInfoViewer viewer) { string[] subDirs = Directory.GetDirectories(fileName); foreach (string subDir in subDirs) { deepLoadFromFolder(cmd, parent, subDir, viewer); } loadFromFolder(cmd, parent, fileName, viewer); }
public void prepareForLoad(String folderName, bool deep, LoadInfoViewer viewer) { this.folderName = folderName; this.deep = deep; this.mViewer = viewer; }