Name

SPVM::Sys::IO::Windows - IO System Call on Windows

Description

Sys::IO::Windows class in SPVM has methods to manipulate IO system calls in Windows.

Usage

use Sys::IO::Windows;

Class Methods

static method unlink : int ($pathname : string);

Delete a file.

Note:

This method is implemented so that the beheivior is the same as Sys::IO#readlink method as possible.

If the file given by the path name $pathname is read-only, the flag is disabled before the file deletion. If the file deletion failed, the flag is restored.

This method can delete both symlinks and directory junctions.

Error numbers in Windows are replaced with the ones in POSIX.

Exceptions:

$pathname must be defined. Otherwise an exception is thrown.

If the unlink function failed, an exception is thrown with eval_error_id set to the basic type ID of the Error::System class.

rename

static method rename : int ($oldpath : string, $newpath : string);

Raname the file name from the old name $oldpath to the new name $newpath.

Note:

This method is implemented so that the beheivior is the same as Sys::IO#readlink method as possible.

Error numbers in Windows are replaced with the ones in POSIX.

Exceptions:

$oldpath must be defined. Otherwise an exception is thrown.

$newpath must be defined. Otherwise an exception is thrown.

If the rename function failed, an exception is thrown with eval_error_id set to the basic type ID of the Error::System class.

static method symlink : int ($oldpath : string, $newpath : string);

Creates a path $newpath symbolically linked to the path $oldpath.

Note:

This method is implemented so that the beheivior is the same as Sys::IO#symlink method as possible.

Error numbers in Windows are replaced with the ones in POSIX.

static method win_readlink : string ($path : string);

If the file $path is a symbolic link or directory junction, returns its link text.

Exceptions:

An exception is thrown if $path does not exist, if the process do not have the appropriate permission to open $path, or if $path is not a symbolic link or a directory junction.

realpath

static method realpath : mutable string ($path : string, $resolved_path : mutable string);

Resolves symbolic link in the path $path and converts it to a canonical absolute path(but not long path format), and returns it.

$resolved_path must be undef.

static method is_symlink : int ($path : string);

If the file $path is a symblic link or a directory junction, returns 1; otherwise returns 0.

Excepsitons:

The path $path must be defined. Otherwise an exception is thrown.

Copyright & License

Copyright (c) 2023 Yuki Kimoto

MIT License