помогите с SHFileOperation и SHGetSpecialFolderPathA
От: RIVATNT  
Дата: 04.06.11 10:16
Оценка:
Привет всем, помогите новичку

неработает код пишет что: мол так и так не могу найти файл или прочитать его с диска, хотя если pFrom указывать прямым текстом например C:\\folder\\*.*\0 чистит все, а вот в локал дата неработает, прбовал в двумя нулями пробовал по разному не работает, проверял на доступность файла в ручную все доступно, удаляется без проблем. конролировал путь через messagebox все вроде правильно но правдо пути(только что обратил внимание) он отображет с одним слешем может в это то и проблема? пожалуйста объясните как заставить код работать...

char pth1[MAX_PATH] = "";
SHGetSpecialFolderPathA(NULL, pth1, CSIDL_LOCAL_APPDATA, FALSE);
std::stringstream path_cache_S1;
path_cache_S1 << pth1<< "\\sc\\Cache\\*.*\0";

SHFILEOPSTRUCT sh;
ZeroMemory(&sh, sizeof(SHFILEOPSTRUCT));
sh.pFrom = ru_wstring(path_cache_S1.str()).c_str();
sh.fFlags = FOF_FILESONLY|FOF_NOCONFIRMATION;
sh.wFunc = FO_DELETE;
SHFileOperation(&sh);

MessageBoxW(NULL,ru_wstring(path_cache_S1.str()).c_str(),ru_wstring(path_cache_S1.str()).c_str(), 1);


функция ru_wstring
std::wstring ru_wstring(const std::string &s) {
    std::wstring result;
    std::locale loc("russian_Russia.1251");
    result.reserve(s.size());
    const std::ctype<wchar_t> &facet = std::use_facet<std::ctype<wchar_t> >(loc);
    for (std::string::const_iterator i = s.begin(); i != s.end(); ++i)
        result.append(1, facet.widen(*i));
    return result;
}



04.06.11 17:42: Перенесено из 'C/C++'
shgetspecialfolderpatha shfileoperation с++
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.