bool CFindFile::FindFirst(CFSTR cfWildcard, CFileInfo &fi, bool ignoreLink) { if (!Close()) return false; AString Awildcard = UnicodeStringToMultiByte(cfWildcard, CP_ACP); const char * wildcard = (const char *)Awildcard; if ((!wildcard) || (wildcard[0]==0)) { SetLastError(ERROR_PATH_NOT_FOUND); return false; } my_windows_split_path(nameWindowToUnix(wildcard),_directory,_pattern); TRACEN((printf("CFindFile::FindFirst : %s (dirname=%s,pattern=%s)\n",wildcard,(const char *)_directory,(const char *)_pattern))) _dirp = ::opendir((const char *)_directory); TRACEN((printf("CFindFile::FindFirst : opendir=%p\n",_dirp))) if ((_dirp == 0) && (global_use_utf16_conversion)) { // Try to recover the original filename UString ustr = MultiByteToUnicodeString(_directory, 0); AString resultString; bool is_good = originalFilename(ustr, resultString); if (is_good) { _dirp = ::opendir((const char *)resultString); _directory = resultString; } } if (_dirp == 0) return false; struct dirent *dp; while ((dp = readdir(_dirp)) != NULL) { if (filter_pattern(dp->d_name,(const char *)_pattern,0) == 1) { int retf = fillin_CFileInfo(fi,(const char *)_directory,dp->d_name,ignoreLink); if (retf) { TRACEN((printf("CFindFile::FindFirst : closedir-1(dirp=%p)\n",_dirp))) closedir(_dirp); _dirp = 0; SetLastError( ERROR_NO_MORE_FILES ); return false; } TRACEN((printf("CFindFile::FindFirst -%s- true\n",dp->d_name))) return true; } }
bool DoesFileOrDirExist(LPCWSTR name) { AString Aname = UnicodeStringToMultiByte(name, CP_ACP); bool bret = DoesFileOrDirExist((LPCSTR)Aname); if (bret) return bret; // Try to recover the original filename AString resultString; bool is_good = originalFilename(name, resultString); if (is_good) { bret = DoesFileOrDirExist((const char *)resultString); } return bret; }
qint32 cMediaInfo::writeFilename() { QSqlQuery query; query.prepare("SELECT id FROM file WHERE fileName=:fileName AND fileSize=:fileSize AND fileDate=:fileDate;"); query.bindValue(":fileName", fileName()); query.bindValue(":fileSize", fileSize()); query.bindValue(":fileDate", fileDate()); if(!query.exec()) { myDebug << query.lastError().text(); return(-1); } if(query.next()) query.prepare("UPDATE file SET fileType=:fileType, length=:length, bitrate=:bitrate, sampleRate=:sampleRate, channels=:channels, bitsPerSample=:bitsPerSample, layer=:layer, version=:version, sampleWidth=:sampleWidth, sampleFrames=:sampleFrames, isEncrypted=:isEncrypted, trackGain=:trackGain, albumGain=:albumGain, trackPeak=:trackPeak, albumPeak=:albumPeak, protectionEnabled=:protectionEnabled, channelMode=:channelMode, isCopyrighted=:isCopyrighted, isOriginal=:isOriginal, album=:album, title=:title, copyright=:copyright, trackNumber=:trackNumber, contentGroupDescription=:contentGroupDescription, subTitle=:subTitle, originalAlbum=:originalAlbum, partOfSet=:partOfSet, subTitleOfSet=:subTitleOfSet, internationalStandardRecordingCode=:internationalStandardRecordingCode, leadArtist=:leadArtist, band=:band, conductor=:conductor, interpret=:interpret, originalArtist=:originalArtist, textWriter=:textWriter, originalTextWriter=:originalTextWriter, composer=:composer, encodedBy=:encodedBy, beatsPerMinute=:beatsPerMinute, language=:language, contentType=:contentType, mediaType=:mediaType, mood=:mood, producedNotice=:producedNotice, publisher=:publisher, fileOwner=:fileOwner, internetRadioStationName=:internetRadioStationName, internetRadioStationOwner=:internetRadioStationOwner, originalFilename=:originalFilename, playlistDelay=:playlistDelay, encodingTime=:encodingTime, originalReleaseTime=:originalReleaseTime, recordingTime=:recordingTime, releaseTime=:releaseTime, taggingTime=:taggingTime, swhwSettings=:swhwSettings, albumSortOrder=:albumSortOrder, performerSortOrder=:performerSortOrder, titleSortOrder=:titleSortOrder, synchronizedLyrics=:synchronizedLyrics, unsynchronizedLyrics=:unsynchronizedLyrics WHERE filename=:filename AND filesize=:filesize AND filedate=:filedate;"); else query.prepare("INSERT INTO file (fileName, fileSize, fileDate, fileType, length, bitrate, sampleRate, channels, bitsPerSample, layer, version, sampleWidth, sampleFrames, isEncrypted, trackGain, albumGain, trackPeak, albumPeak, protectionEnabled, channelMode, isCopyrighted, isOriginal, album, title, copyright, trackNumber, contentGroupDescription, subTitle, originalAlbum, partOfSet, subTitleOfSet, internationalStandardRecordingCode, leadArtist, band, conductor, interpret, originalArtist, textWriter, originalTextWriter, composer, encodedBy, beatsPerMinute, language, contentType, mediaType, mood, producedNotice, publisher, fileOwner, internetRadioStationName, internetRadioStationOwner, originalFilename, playlistDelay, encodingTime, originalReleaseTime, recordingTime, releaseTime, taggingTime, swhwSettings, albumSortOrder, performerSortOrder, titleSortOrder, synchronizedLyrics, unsynchronizedLyrics) VALUES (:fileName, :fileSize, :fileDate, :fileType, :length, :bitrate, :sampleRate, :channels, :bitsPerSample, :layer, :version, :sampleWidth, :sampleFrames, :isEncrypted, :trackGain, :albumGain, :trackPeak, :albumPeak, :protectionEnabled, :channelMode, :isCopyrighted, :isOriginal, :album, :title, :copyright, :trackNumber, :contentGroupDescription, :subTitle, :originalAlbum, :partOfSet, :subTitleOfSet, :internationalStandardRecordingCode, :leadArtist, :band, :conductor, :interpret, :originalArtist, :textWriter, :originalTextWriter, :composer, :encodedBy, :beatsPerMinute, :language, :contentType, :mediaType, :mood, :producedNotice, :publisher, :fileOwner, :internetRadioStationName, :internetRadioStationOwner, :originalFilename, :playlistDelay, :encodingTime, :originalReleaseTime, :recordingTime, :releaseTime, :taggingTime, :swhwSettings, :albumSortOrder, :performerSortOrder, :titleSortOrder, :synchronizedLyrics, :unsynchronizedLyrics);"); query.bindValue(":fileName", fileName()); query.bindValue(":fileSize", fileSize()); query.bindValue(":fileDate", fileDate()); query.bindValue(":fileType", fileType()); query.bindValue(":length", length()); query.bindValue(":bitrate", bitrate()); query.bindValue(":sampleRate", sampleRate()); query.bindValue(":channels", channels()); query.bindValue(":bitsPerSample", bitsPerSample()); query.bindValue(":layer", layer()); query.bindValue(":version", version()); query.bindValue(":sampleWidth", sampleWidth()); query.bindValue(":sampleFrames", sampleFrames()); query.bindValue(":isEncrypted", isEncrypted()); query.bindValue(":trackGain", trackGain()); query.bindValue(":albumGain", albumGain()); query.bindValue(":trackPeak", trackPeak()); query.bindValue(":albumPeak", albumPeak()); query.bindValue(":protectionEnabled", protectionEnabled()); query.bindValue(":channelMode", channelMode()); query.bindValue(":isCopyrighted", isCopyrighted()); query.bindValue(":isOriginal", isOriginal()); query.bindValue(":album", album()); query.bindValue(":title", title()); query.bindValue(":copyright", copyright()); query.bindValue(":trackNumber", trackNumber()); query.bindValue(":contentGroupDescription", contentGroupDescription()); query.bindValue(":subTitle", subTitle()); query.bindValue(":originalAlbum", originalAlbum()); query.bindValue(":partOfSet", partOfSet()); query.bindValue(":subTitleOfSet", subTitleOfSet()); query.bindValue(":internationalStandardRecordingCode", internationalStandardRecordingCode()); query.bindValue(":leadArtist", leadArtist()); query.bindValue(":band", band()); query.bindValue(":conductor", conductor()); query.bindValue(":interpret", interpret().join(", ")); query.bindValue(":originalArtist", originalArtist()); query.bindValue(":textWriter", textWriter()); query.bindValue(":originalTextWriter", originalTextWriter()); query.bindValue(":composer", composer()); query.bindValue(":encodedBy", encodedBy()); query.bindValue(":beatsPerMinute", beatsPerMinute()); query.bindValue(":language", language().join(", ")); query.bindValue(":contentType", contentType().join(", ")); query.bindValue(":mediaType", mediaType().join(", ")); query.bindValue(":mood", mood()); query.bindValue(":producedNotice", producedNotice()); query.bindValue(":publisher", publisher()); query.bindValue(":fileOwner", fileOwner()); query.bindValue(":internetRadioStationName", internetRadioStationName()); query.bindValue(":internetRadioStationOwner", internetRadioStationOwner()); query.bindValue(":originalFilename", originalFilename()); query.bindValue(":playlistDelay", playlistDelay()); query.bindValue(":encodingTime", encodingTime()); query.bindValue(":originalReleaseTime", originalReleaseTime()); query.bindValue(":recordingTime", recordingTime()); query.bindValue(":releaseTime", releaseTime()); query.bindValue(":taggingTime", taggingTime()); query.bindValue(":swhwSettings", swhwSettings().join(", ")); query.bindValue(":albumSortOrder", albumSortOrder()); query.bindValue(":performerSortOrder", performerSortOrder()); query.bindValue(":titleSortOrder", titleSortOrder()); query.bindValue(":synchronizedLyrics", synchronizedLyrics().join()); query.bindValue(":unsynchronizedLyrics", unsynchronizedLyrics().join("||")); if(!query.exec()) { myDebug << query.lastError().text(); return(-1); } query.prepare("SELECT id FROM file WHERE fileName=:fileName AND fileSize=:fileSize AND fileDate=:fileDate;"); query.bindValue(":fileName", fileName()); query.bindValue(":fileSize", fileSize()); query.bindValue(":fileDate", fileDate()); if(!query.exec()) { myDebug << query.lastError().text(); return(-1); } if(query.next()) return(query.value("id").toInt()); return(-1); }