void RemoveDirWithContents(Stroka dirName) { SlashFolderLocal(dirName); TDirIterator dir(dirName); for (TDirIterator::TIterator it = dir.Begin(); it != dir.End(); ++it) { switch (it->fts_info) { case FTS_F: case FTS_DEFAULT: case FTS_DP: case FTS_SL: case FTS_SLNONE: if (NFs::Remove(it->fts_path)) ythrow TSystemError() << "error while removing " << it->fts_path; break; } } }
TSimpleLemmer::TSimpleLemmer(const Stroka& path) { Stroka libPath = path; if (path.length() == 0) { Stroka prgDir = GetProgramDir(); if ((prgDir.length() > 1 && prgDir[1] == ':') || (prgDir.length() > 0 && prgDir[0] == '/')) libPath = prgDir; else libPath = GetCwd() + Stroka("/") + prgDir; SlashFolderLocal(libPath); libPath += Stroka("libmystem_c_binding.so"); //Cerr << "libPath == " << libPath << Endl; } Lib.Open(~libPath, RTLD_NOW | RTLD_DEEPBIND | RTLD_NODELETE); if (!IsInitialized()) yexception() << "Can't load lemmer from \"" << path << "\""; }