} /* ImportImage */ private void ImportValidatedClassAssignmentsDir(PicesDataBase threadConn, String dirName ) { RunLogAddMsg("Dir[" + dirName + "]" + "\n"); String[] fileNames = null; try { fileNames = Directory.GetFiles(dirName); } catch (Exception e) { RunLogAddMsg("\n" + "Error retrieving file info for Directory[" + dirName + "]" + "\n"); RunLogAddMsg("Exception[" + e.ToString() + "]" + "\n\n"); fileNames = null; } if (fileNames != null) { String className = PicesClass.GetClassNameFromDirName(dirName); PicesClass mlClass = null; int numThisDir = 0; int numFailedThisDir = 0; foreach (String fn in fileNames) { String ext = OSservices.GetFileExtension(fn).ToLower(); if ((ext == "bmp") || (ext == "jpg")) { String rn = OSservices.GetRootName(fn); if (mlClass == null) { mlClass = GetClassFromName(threadConn, className); } if (importImages) { numThisDir++; ImportImage(threadConn, fn); } else { //rn = "TRAIN_" + rn; threadConn.ImagesUpdateValidatedAndPredictClass(rn, mlClass, 1.0f); if (threadConn.Successful()) { numThisDir++; } else { numFailedThisDir++; RunLogAddMsg("Dir[" + dirName + "] RootName[" + rn + "] Failed" + "\n"); RunLogAddMsg(threadConn.LastErrorDesc() + "\n"); } } if ((numThisDir % 100) == 0) { RunLogAddMsg("Dir[" + dirName + "] Files Updated[" + numThisDir.ToString("###,##0") + "]" + "\n"); } } } RunLogAddMsg("Dir[" + dirName + "] Files Updated[" + numThisDir.ToString("###,##0") + "]" + "\n"); totalImagesUpdated += numThisDir; } if (!cancelImporting) { String[] directories = null; try { directories = Directory.GetDirectories(dirName); } catch (Exception) { directories = null; } if (directories != null) { foreach (String subDir in directories) { if ((subDir == ".") || (subDir == "..")) { continue; } ImportValidatedClassAssignmentsDir(threadConn, subDir); if (cancelImporting) { break; } } } } } /* ImportValidatedClassAssignmentsDir */