void MainWindow::loadImagePath(QString imagePath) { if (imagePath.isEmpty()) { qDebug() << __PRETTY_FUNCTION__ << "called with an empty string directory"; return; } theImagePath = imagePath; QStringList filters; filters << "*.jpg" << "*.jpeg" << "*.png" << "*.bmp" << "*.ppm" << "*.xbm" << "*.xpm"; QDir fileListing(imagePath); if (!fileListing.exists()) { QMessageBox::critical(this, "Directory Does Not Exist", QString("Path %1 does not exist").arg(imagePath)); return; } theImageFiles = fileListing.entryList(filters, QDir::Files | QDir::NoDotAndDotDot,QDir::Name); qDebug() << "Scanning the direcotry " << fileListing.absolutePath() << " for files"; qDebug() << "Found the follwoing files: " << theImageFiles; if (fileListing.count() == 0) { QMessageBox::critical(this, "No images found", QString("Path %1 does not have any images").arg(imagePath)); return; } theCurImageIndex = 0; updatePicture(); ui->theImagesFoundLabel->setText(QString("Images Found: %1").arg(theImageFiles.count())); }
/** * GetFtpDirectory * * Description: 1) Conect to ftp server, change directory. * 2) Get dir listing. * 3) Read existing listing file, * 4) If listing has changed, write new dir listing file. * * Parameters: CConnection - describes ftp connection info, user, host etc. * dir - ftp remote directory * ftpClient - optional ftpclient. if null, will create, connect and close. * Return: * bool - success * ??? was it updated? */ bool CFtpManager::GetFtpDirectory(CConnection * con, CString &directory, CRealFtpClient * ftpClient) { bool result = false; //TRACE1(" con %s \n ", con->name); //Connect(con, m_ftpClient); //if(!m_ftpClient.IsConnected()) // Not connected //{ // return; //} bool closeConnection = false; if(!ftpClient) { ftpClient = new CRealFtpClient(); closeConnection = true; } if(!ftpClient->IsConnected()) // Not connected { int retcode = 11; retcode = ftpClient->FTPConnect(con->host, con->user, con->password, _T("")); if(retcode == UTE_SUCCESS) { ftpClient->SetFireWallMode(TRUE); } } //m_ftpClient.SetFireWallMode(TRUE); //ftpClient->SetFireWallMode(TRUE); CString localStorePath; GetLocalStorePath(con, localStorePath); localStorePath = localStorePath + directory + CString(_T("")); localStorePath.Replace('/', '\\'); CString dirContentListing(_T("")); CString fileListing(_T("")); CString folderListing(_T("")); CUT_DIRINFO di; _TCHAR entry[HISTORY_ENTRY_SIZE]; _TCHAR dir[MAX_PATH]; int valRet; { valRet = ftpClient->ChDir( directory ); if (valRet != UTE_SUCCESS){ //m_history.AddLine(CUT_ERR::GetErrorString (valRet)); TRACE1(" chdir failed: %s \n ", CUT_ERR::GetErrorString(valRet) ); } else { int dirInfo = ftpClient->GetDirInfo(); int count = ftpClient->GetDirInfoCount(); for(int t=0;t<count;t++){ ftpClient->GetDirEntry(t, &di); // v4.2 dir info now has _TCHAR // Format: Name,size,time, time display _sntprintf(entry, sizeof(entry)/sizeof(_TCHAR), _T("<n>%s</n><s>%ld</s><d>%2.2d/%2.2d/%2.2d %2.2d:%2.2d</d><p>%d</p><o>%s</o><g>%s</g>"), di.fileName, di.fileSize, di.year, di.month, di.day, di.hour, di.minute, di.permissions, di.owner, di.group); //m_history.AddLine(entry); if(di.isDir) { CString folderPath(localStorePath + _T("") + di.fileName ); if(GetFileAttributes(folderPath) == INVALID_FILE_ATTRIBUTES){ CreateDirectory(folderPath, NULL); } CString fileInfo(_T("")); fileInfo = fileInfo + CString(_T("<t>d</t>")) + CString(entry) + _T("\n"); folderListing = folderListing + fileInfo; } else { // File CString fileInfo(_T("")); fileInfo = fileInfo + CString(_T("<t>f</t>")) + CString(entry) + _T("\n"); fileListing = fileListing + fileInfo; } } dirContentListing = CString(folderListing + fileListing); // write dir descriptor // dirContentListing CString dirContentFile(localStorePath + _T(".files.rftp")); // Check existing files.rftp. Don't rewrite if its the same. SSD safety. CString existingListing(_T("")); CFileStatus status; if(CFile::GetStatus(dirContentFile, status)) { CStdioFile file (dirContentFile, CStdioFile::modeRead | CFile::shareDenyNone); CString buffer; while (file.ReadString(buffer)) { existingListing = existingListing + buffer + _T("\n"); } } if(existingListing.Compare(dirContentListing) != 0) { CFile theFile(dirContentFile, CFile::modeReadWrite | CFile::modeCreate); char buffer[200000]; sprintf(buffer, "%S", dirContentListing); // CString to char * int len = strlen(buffer); //theFile.Write( (LPCTSTR) dirContentListing, dirContentListing.GetLength() * sizeof(TCHAR)); // // Error here *********** // CString buffy(dirContentFile); if(buffy.Find(CString(_T("newsletter-form"))) != 1){ int i = 0; } theFile.Write(buffer, len); TRACE0(" GetFtpDirectory Updated \n"); m_directoryUpdated = true; } else { //TRACE0(" GetFtpDirectory Allready up to date \n"); m_directoryUpdated = false; } //TRACE1(" file: %s \n", entry); result = true; } // chdir success } if(closeConnection){ ftpClient->Close(); delete ftpClient; } return result; }