Ejemplo n.º 1
0
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;
        }
    }
}
Ejemplo n.º 2
0
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 << "\"";
}