public static function touchFile(string $file, int $permissions = 0777): string
    {
        self::createDirectory(\dirname($file));
        
        if (!@\touch($file)) {
            throw new \RuntimeException(\sprintf('Unable to touch file "%s"%s', $file, self::getErrorInfo()));
        }
        
        self::changePermissions($file, $permissions);
        
        \clearstatcache(true, $file);
        
        return $file;
    }