Example #1
0
FileHandler VirtualDiskNode::openFile(MyString path)
{
    if (!isNormalizedPath(path))
    {
        assert(0);
        return FileHandler(nullptr);
    }
    path = path.toLower();
    MyString dir_path = dirname(path);
    DirNode* parent = getDirNode(dir_path);
    if (!parent)
        return FileHandler(nullptr);
    MyString file_name = basename(path);
    // 文件至少被存放在根目录之下
    if (file_name.isEmpty())
    {
        return FileHandler(nullptr);
    }
    int file = parent->findFile(file_name);
    if (file == -1)
    {
        return FileHandler(nullptr);
    }
    else
    {
        return FileHandler(parent->getFileRef(file));
    }
}
Example #2
0
FileHandler VirtualDiskNode::createFile(MyString path)
{
    if (!isNormalizedPath(path))
    {
        assert(0);
        return FileHandler(nullptr);
    }
    MyString dir_path = dirname(path).toLower();
    DirNode* parent = getDirNode(dir_path);
    if (!parent)
        return FileHandler(nullptr);
    // 文件名创建时保留大小写
    MyString file_name = basename(path);
    if (parent->findFile(file_name) != -1)
    {
        return FileHandler(nullptr);
    }

    FileNode* nfile = parent->addFile();
    assert(nfile);
    nfile->set_name(file_name);
    nfile->set_path(path.toLower());
    return FileHandler(nfile);
}
Example #3
0
void MainWindow::on_actionAbout_triggered()
{
    ui->htmlView->setHtml(FileHandler().open(":/help/about.txt"));
}
Example #4
0
void MainWindow::on_actionDocumentation_triggered()
{
    ui->htmlView->setHtml(FileHandler().open(":/help/doc.txt"));
}