GW2GetFileType
Các ID loại tệp được ánh xạ tới các loại tệp được Glasswall Engine hỗ trợ. API này cung cấp tên chính thức của loại tệp ở định dạng chuỗi khi biết số ID loại tệp.
- C++
- C#
- Java
- Python
- JavaScript
#include "glasswall.core2.api.h"
int GW2GetFileType(
Session session,
size_t fileId,
size_t *bufferLength,
char **outputBuffer);
Tham số
session ID của phiên như được trả về bởi GW2OpenSession
fileId Một số nguyên biểu thị ID loại tệp
bufferLength Một tham số đầu ra được điền kích thước tính bằng byte của vùng nhớ được trỏ tới bởi outputBuffer.
outputBuffer Một tham số đầu ra con trỏ chuỗi được điền tên chính thức của loại tệp liên kết với ID tệp được cung cấp, ví dụ: "BMP Image". Vùng nhớ được sử dụng bởi con trỏ này không cần được người dùng giải phóng.
Giá trị trả về
Trả về một số nguyên cho biết liệu lời gọi hàm có thành công hay không. Các số âm cho biết có lỗi. Xem bảng Return Types để biết giải thích về các mã trả về. Nếu thành công, outputBuffer sẽ được điền tên chính thức liên kết với loại tệp.
Ví dụ
#include "glasswall.core2.api.h"
#include "filetype.h" // ft_t enum which includes ft_bmp
char *outbuf = NULL;
size_t buflen = 0;
if (GW2OpenSession() < 0)
/* Error opening session */
else
{
int status = GW2GetFileType(session, ft_bmp, &buflen, &outbuf);
/* In this example outbuf will point to the string "BMP Image". */
if (GW2CloseSession() < 0)
/* Error closing session */
}
Tóm tắt
public int GW2GetFileType(
int session,
uint fileID,
ref UIntPtr bufferLength,
out IntPtr outputBuffer)
Giá trị trả về
Trả về một giá trị enum số nguyên GW2_RetStatus. Các số âm cho biết có lỗi. Nếu thành công, bộ đệm đầu ra sẽ được điền tên chính thức của loại tệp.
Ví dụ
using glasswall_core2;
...
Glasswall glasswall = new Glasswall(); // Instance of the Glasswall wrapper
int session = glasswall.OpenSession();
int returnStatus = glasswall.GW2GetFileType(session, 22, ref bufferLength, out buffer);
if (bufferLength >= 0)
{
byte[] msgArray = glasswall.CreateArrayFromBuffer(buffer, bufferLength);
// Formal name for file type ID 22 now stored in a byte array
}
if (glasswall.CloseSession(session))
{
// Error Handling
}
Tóm tắt
import com.glasswall.core2javabridge.*;
public String GW2GetFileTypeString(int session, int fileId) throws GlasswallException
Lưu ý
Chức năng này trước đây yêu cầu hai lệnh gọi hàm riêng biệt để truy xuất dữ liệu loại tệp. Hiện nay, chức năng này đã được tinh gọn để trả về các thiết lập dưới dạng String. Hai hàm gốc hiện đã bị ngừng dùng.
Giá trị trả về
Hàm GW2GetFileTypeString trả về biểu diễn String của một ID loại tệp.
Một ngoại lệ GlasswallException sẽ được đưa ra nếu session không hợp lệ hoặc nếu không thể truy xuất loại tệp.
Tóm tắt - Các hàm không còn được dùng
import com.glasswall.core2javabridge.*;
(Deprecated)
public int GW2GetFileType(int session, int fileId) throws GlasswallException
public byte[] GetFileTypeBuffer(int session) throws GlasswallException
Mô tả - Các hàm đã ngừng dùng
Hàm GW2GetFileType xuất một biểu diễn của fileId cho phiên được chỉ định bởi session vào FileType Buffer nội bộ. Truy xuất dữ liệu này bằng cách sử dụng hàm GetFileTypeBuffer.
Giá trị trả về - Các hàm không còn được dùng
Hàm GW2GetFileType trả về một giá trị liệt kê GW2_RetStatus được chuyển đổi thành int. Giá trị sẽ là số âm nếu xảy ra lỗi. 0 cho biết thành công. Tham khảo API Overview/Return types để biết chi tiết.
Hàm GetFileTypeBuffer trả về một byte[] được mã hóa UTF-8 chứa biểu diễn của một ID loại tệp. Giá trị này sẽ là null nếu GW2GetFileType chưa được gọi.
Một ngoại lệ GlasswallException sẽ được đưa ra nếu session không hợp lệ hoặc nếu không thể truy xuất loại tệp.
Tóm tắt
Truy xuất thông tin về một loại tệp dựa trên mã định danh của loại đó.
def get_file_type_info(self, file_type: Union[str, int]):
""" Retrieve information about a file type based on its identifier.
Args:
file_type (Union[str, int]): The file type identifier. This can be either a string representing a file
extension (e.g. 'bmp') or an integer corresponding to a file type (e.g. 29).
Returns:
- file_type_info (Union[int, str]): Depending on the input 'file_type':
- If `file_type` is a string (e.g. 'bmp'):
- If the file type is recognised, returns an integer corresponding to that file type.
- If the file type is not recognised, returns 0.
- If `file_type` is an integer (e.g. 29):
- If the integer corresponds to a recognised file type, returns a more detailed string description
of the file type (e.g. 'BMP Image').
- If the integer does not match any recognised file type, returns an empty string.
"""
Giá trị trả về
Trả về một số nguyên hoặc chuỗi tùy thuộc vào đầu vào 'file_type'. Giá trị này có thể là số nguyên của một loại tệp được nhận diện, chuỗi mô tả chi tiết của một loại tệp được nhận diện hoặc, nếu đầu vào 'file_type' không được nhận diện, là 0 hoặc chuỗi rỗng.
Tóm tắt
Hàm này đặt một con trỏ tới phần mô tả của fileID được chỉ định vào một vị trí được chỉ định.
/**
*
* @param {number} session The ID of the session.
* @param {number} fileID The ID of the file type.
* @param {number} bufferLength The length of the buffer.
* @param {string} outputBuffer The location of the output buffer.
*/
GW2GetFileType(
session,
fileID,
bufferLength,
outputBuffer)
Giá trị trả về
Trả về một giá trị enum GW2_RetStatus kiểu số nguyên. Các số âm cho biết có lỗi. Nếu thành công, bộ đệm đầu ra sẽ được điền bằng tên chính thức của loại tệp.
Ví dụ
const ref = require('ref-napi');
...
function buffer_to_string(buffer, buffer_size) {
if (!buffer.isNull() && ref.deref(buffer_size) > 0) {
return Buffer.from(ref.reinterpret(ref.deref(buffer), ref.deref(buffer_size), 0)).toString();
}
else {
return "";
}
}
...
output_file_buffer = ref.alloc(ref.refType(ref.types.CString));
output_buffer_size = ref.alloc(ref.types.size_t, 0);
return_status = gw.GW2GetFileType(session_id, 22, output_buffer_size, output_file_buffer);
let error_description = buffer_to_string(output_file_buffer, output_buffer_size);
...