コード例 #1
0
ファイル: fs.cpp プロジェクト: icodingforfood/fibjs
result_t fs_base::rename(const char *from, const char *to, AsyncEvent *ac)
{
    if (!ac)
        return CHECK_ERROR(CALL_E_NOSYNC);

    if (::_wrename(UTF8_W(from), UTF8_W(to)))
        return CHECK_ERROR(LastError());

    return 0;
}
コード例 #2
0
ファイル: fs.cpp プロジェクト: anlebcoder/fibjs
result_t fs_base::rename(exlib::string from, exlib::string to, AsyncEvent *ac)
{
    if (!ac)
        return CHECK_ERROR(CALL_E_NOSYNC);

    if (::_wrename(UTF8_W(from), UTF8_W(to)))
        return CHECK_ERROR(LastError());

    return 0;
}
コード例 #3
0
ファイル: fs.cpp プロジェクト: icodingforfood/fibjs
result_t fs_base::exists(const char *path, bool &retVal, AsyncEvent *ac)
{
    if (!ac)
        return CHECK_ERROR(CALL_E_NOSYNC);

    retVal = _waccess(UTF8_W(path), 0) == 0;
    return 0;
}
コード例 #4
0
ファイル: fs.cpp プロジェクト: icodingforfood/fibjs
result_t fs_base::rmdir(const char *path, AsyncEvent *ac)
{
    if (!ac)
        return CHECK_ERROR(CALL_E_NOSYNC);

    if (::_wrmdir(UTF8_W(path)))
        return CHECK_ERROR(LastError());

    return 0;
}
コード例 #5
0
ファイル: fs.cpp プロジェクト: anlebcoder/fibjs
result_t fs_base::mkdir(exlib::string path, int32_t mode, AsyncEvent *ac)
{
    if (!ac)
        return CHECK_ERROR(CALL_E_NOSYNC);

    if (::_wmkdir(UTF8_W(path)))
        return CHECK_ERROR(LastError());

    return 0;
}
コード例 #6
0
ファイル: fs.cpp プロジェクト: anlebcoder/fibjs
result_t fs_base::unlink(exlib::string path, AsyncEvent *ac)
{
    if (!ac)
        return CHECK_ERROR(CALL_E_NOSYNC);

    if (::_wunlink(UTF8_W(path)))
        return CHECK_ERROR(LastError());

    return 0;
}
コード例 #7
0
ファイル: Stat.cpp プロジェクト: ngot/fibjs
result_t Stat::getStat(exlib::string path)
{

    WIN32_FIND_DATAW fd;
    HANDLE hFind;

    hFind = FindFirstFileW(UTF8_W(path), &fd);
    if (hFind == INVALID_HANDLE_VALUE)
        return CHECK_ERROR(LastError());

    fill(fd);
    FindClose(hFind);

    return 0;
}
コード例 #8
0
ファイル: File.cpp プロジェクト: Andrew-Zhang/fibjs
result_t File::open(const char *fname, const char *flags, exlib::AsyncEvent *ac)
{
    if (switchToAsync(ac))
        return CHECK_ERROR(CALL_E_NOSYNC);

#ifdef _WIN32
    int _flags = _O_BINARY;
#else
    int _flags = 0;
#endif

    if (!qstrcmp(flags, "r" ))
        _flags |= O_RDONLY;
    else if (!qstrcmp(flags, "r+" ))
        _flags |= O_RDWR;
    else if (!qstrcmp(flags, "w" ))
        _flags |= O_TRUNC | O_CREAT | O_WRONLY;
    else if (!qstrcmp(flags, "w+" ))
        _flags |= O_TRUNC | O_CREAT | O_RDWR;
    else if (!qstrcmp(flags, "a" ))
        _flags |= O_APPEND | O_CREAT | O_WRONLY;
    else if (!qstrcmp(flags, "a+" ))
        _flags |= O_APPEND | O_CREAT | O_RDWR;

    close(ac);

#ifdef _WIN32
    m_fd = _wopen(UTF8_W(fname), _flags, _S_IREAD | _S_IWRITE);
#else
    m_fd = ::open(fname, _flags, 0666);
#endif
    if (m_fd < 0)
        return CHECK_ERROR(LastError());

#ifndef _WIN32
    if (::fcntl(m_fd, F_SETFD, FD_CLOEXEC))
        return CHECK_ERROR(LastError());
#endif

    name = fname;

    return 0;
}