- for (boost::filesystem::wrecursive_directory_iterator itr(env::media_folder()), end; itr != end; ++itr)\r
- { \r
- if(boost::filesystem::is_regular_file(itr->path()))\r
- {\r
- std::wstring clipttype = TEXT(" N/A ");\r
- std::wstring extension = boost::to_upper_copy(itr->path().extension());\r
- if(extension == TEXT(".TGA") || extension == TEXT(".COL") || extension == L".PNG" || extension == L".JPEG" || extension == L".JPG" ||\r
- extension == L"GIF" || extension == L"BMP")\r
- clipttype = TEXT(" STILL ");\r
- else if(extension == TEXT(".SWF") || extension == TEXT(".DV") || extension == TEXT(".MOV") || extension == TEXT(".MPG") || \r
- extension == TEXT(".AVI") || extension == TEXT(".FLV") || extension == TEXT(".F4V") || extension == TEXT(".MP4") ||\r
- extension == L".M2V" || extension == L".H264" || extension == L".MKV" || extension == L".WMV" || extension == L".DIVX" || \r
- extension == L".XVID" || extension == L".OGG")\r
- clipttype = TEXT(" MOVIE ");\r
- else if(extension == TEXT(".WAV") || extension == TEXT(".MP3"))\r
- clipttype = TEXT(" STILL ");\r
-\r
- if(clipttype != TEXT(" N/A "))\r
- { \r
- auto is_not_digit = [](char c){ return std::isdigit(c) == 0; };\r
-\r
- auto relativePath = boost::filesystem::wpath(itr->path().file_string().substr(env::media_folder().size()-1, itr->path().file_string().size()));\r
-\r
- auto writeTimeStr = boost::posix_time::to_iso_string(boost::posix_time::from_time_t(boost::filesystem::last_write_time(itr->path())));\r
- writeTimeStr.erase(std::remove_if(writeTimeStr.begin(), writeTimeStr.end(), is_not_digit), writeTimeStr.end());\r
- auto writeTimeWStr = std::wstring(writeTimeStr.begin(), writeTimeStr.end());\r
-\r
- auto sizeStr = boost::lexical_cast<std::wstring>(boost::filesystem::file_size(itr->path()));\r
- sizeStr.erase(std::remove_if(sizeStr.begin(), sizeStr.end(), is_not_digit), sizeStr.end());\r
- auto sizeWStr = std::wstring(sizeStr.begin(), sizeStr.end());\r
- \r
- auto str = relativePath.replace_extension(TEXT("")).external_file_string();\r
- if(str[0] == '\\' || str[0] == '/')\r
- str = std::wstring(str.begin() + 1, str.end());\r
-\r
- replyString << TEXT("\"") << str\r
- << TEXT("\" ") << clipttype \r
- << TEXT(" ") << sizeStr\r
- << TEXT(" ") << writeTimeWStr\r
- << TEXT("\r\n"); \r
- } \r
- }\r
- }\r