GW2GetFileType
ID jenis fail dipetakan kepada jenis fail yang disokong oleh Glasswall Engine. API ini menyediakan nama rasmi jenis fail dalam format rentetan berdasarkan nombor ID jenis fail yang diberikan.
- C++
- C#
- Java
- Python
- JavaScript
#include "glasswall.core2.api.h"
int GW2GetFileType(
Session session,
size_t fileId,
size_t *bufferLength,
char **outputBuffer);
Parameter
session ID sesi seperti yang dikembalikan oleh GW2OpenSession
fileId Integer yang mewakili ID jenis fail
bufferLength Parameter output yang diisikan dengan saiz dalam bait bagi memori yang ditunjukkan oleh outputBuffer.
outputBuffer Parameter output penuding rentetan yang diisikan dengan nama rasmi jenis fail yang dikaitkan dengan ID fail yang dibekalkan, contohnya "BMP Image". Memori yang digunakan oleh penuding ini tidak perlu dibebaskan oleh pengguna.
Pulangan
Mengembalikan integer yang menunjukkan sama ada panggilan fungsi berjaya. Nombor negatif menunjukkan kegagalan. Lihat jadual Return Types untuk penjelasan kod pulangan. Jika berjaya, outputBuffer diisikan dengan nama rasmi yang dikaitkan dengan jenis fail tersebut.
Contoh
#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 */
}
Sinopsis
public int GW2GetFileType(
int session,
uint fileID,
ref UIntPtr bufferLength,
out IntPtr outputBuffer)
Pulangan
Mengembalikan nilai enum integer GW2_RetStatus. Nombor negatif menunjukkan kegagalan. Jika berjaya, penimbal output diisikan dengan nama rasmi jenis fail.
Contoh
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
}
Sinopsis
import com.glasswall.core2javabridge.*;
public String GW2GetFileTypeString(int session, int fileId) throws GlasswallException
Nota
Fungsi ini sebelum ini memerlukan dua panggilan fungsi berasingan untuk mendapatkan data jenis fail. Kini ia telah dipermudahkan untuk mengembalikan tetapan sebagai String. Dua fungsi asal telah ditamatkan penggunaan.
Pulangan
Fungsi GW2GetFileTypeString mengembalikan perwakilan String bagi ID jenis fail.
Pengecualian GlasswallException akan dilemparkan jika session tidak sah, atau jika jenis fail tidak dapat diperoleh.
Sinopsis - Fungsi Ditamatkan
import com.glasswall.core2javabridge.*;
(Deprecated)
public int GW2GetFileType(int session, int fileId) throws GlasswallException
public byte[] GetFileTypeBuffer(int session) throws GlasswallException
Penerangan - Fungsi Ditamatkan Penggunaan
Fungsi GW2GetFileType mengeluarkan perwakilan fileId untuk sesi yang ditentukan oleh session, ke FileType Buffer dalaman. Dapatkan data ini melalui penggunaan fungsi GetFileTypeBuffer.
Pulangan - Fungsi Ditamatkan
Fungsi GW2GetFileType mengembalikan enumerasi GW2_RetStatus yang ditukarkan kepada int. Nilainya akan negatif jika ralat berlaku. 0 menunjukkan kejayaan. Rujuk API Overview/Return types untuk butiran.
Fungsi GetFileTypeBuffer mengembalikan byte[] berkod UTF-8 yang mengandungi perwakilan ID jenis fail. Nilai ini akan null jika GW2GetFileType belum dipanggil.
Pengecualian GlasswallException akan dilemparkan jika session tidak sah, atau jika jenis fail tidak dapat diperoleh.
Sinopsis
Dapatkan maklumat tentang jenis fail berdasarkan pengecamnya.
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.
"""
Pulangan
Mengembalikan integer atau rentetan bergantung pada input 'file_type'. Nilai ini sama ada integer bagi jenis fail yang dikenali, perihalan rentetan terperinci bagi jenis fail yang dikenali atau jika input 'file_type' tidak dikenali, 0 atau rentetan kosong.
Sinopsis
Fungsi ini meletakkan penuding kepada perihalan fileID yang ditentukan di lokasi yang ditentukan.
/**
*
* @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)
Pulangan
Mengembalikan nilai enum integer GW2_RetStatus. Nombor negatif menunjukkan kegagalan. Jika berjaya, penimbal output diisi dengan nama rasmi jenis fail.
Contoh
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);
...