void FileName::set(const String &_strPath, const String &_strName) { String strPath = _strPath; String strName = _strName; convert_separators(&strPath); convert_separators(&strName); String strFullName; if( strPath.end_with(SEP_PATH) ) strFullName = strPath + strName; else strFullName = strPath + SEP_PATH + strName; set(strFullName); }
directory::directory(std::string const& path, error_code& ec) : m_done(false) { ec.clear(); #ifdef TORRENT_WINDOWS // the path passed to FindFirstFile() must be // a pattern std::string f = convert_separators(path); if (!f.empty() && f[f.size()-1] != '\\') f += "\\*"; else f += "*"; #if TORRENT_USE_WSTRING #define FindFirstFile_ FindFirstFileW std::wstring p = convert_to_wstring(f); #else #define FindFirstFile_ FindFirstFileA std::string p = convert_to_native(f); #endif m_handle = FindFirstFile_(p.c_str(), &m_fd); if (m_handle == INVALID_HANDLE_VALUE) { ec.assign(GetLastError(), boost::system::get_system_category()); m_done = true; return; } #else memset(&m_dirent, 0, sizeof(dirent)); m_name[0] = 0; // the path passed to opendir() may not // end with a / std::string p = path; if (!path.empty() && path[path.size()-1] == '/') p.resize(path.size()-1); p = convert_to_native(p); m_handle = opendir(p.c_str()); if (m_handle == 0) { ec.assign(errno, boost::system::get_generic_category()); m_done = true; return; } // read the first entry next(ec); #endif }