GW2GetFileTypeID
Setiap jenis fail mempunyai ID yang berkaitan dalam Glasswall Engine. API ini menyediakan ID jenis fail Glasswall dalam format rentetan untuk sambungan fail berkaitan yang dibekalkan.
- C++
- C#
- Java
- Python
- JavaScript
#include "glasswall.core2.api.h"
int GW2GetFileTypeID(
Session session,
const char *fileType,
size_t *bufferLength,
char **outputBuffer);
Parameter
session ID sesi seperti yang dikembalikan oleh GW2OpenSession
fileType Rentetan yang mengandungi sambungan fail. Contohnya "bmp".
bufferLength Parameter output yang diisikan dengan saiz dalam bait bagi memori yang ditunjukkan oleh outputBuffer.
outputBuffer Parameter output penuding rentetan yang diisikan dengan ID jenis fail yang dikaitkan dengan sambungan yang dibekalkan. 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 ID jenis fail.
Contoh
#include "glasswall.core2.api.h"
char *outbuf = NULL;
size_t buflen = 0;
if (GW2OpenSession() < 0)
/* error opening session */
else
{
int status = GW2GetFileTypeID(session, fileType, &buflen, &outbuf);
/* outbuf points to a buffer containing the XML file.
* Either process the data pointed to, or copy the data and process it
* after GW2CloseSession is called
*/
if (GW2CloseSession() < 0)
/* error closing session */
}
Sinopsis
public int GetFileTypeID(
int session,
string fileType,
ref UIntPtr bufferLength,
out IntPtr outputBuffer)
Pulangan
Mengembalikan nilai enum integer GW2_RetStatus. Nombor negatif menunjukkan kegagalan. Jika berjaya, penimbal output diisikan dengan ID jenis fail.
Contoh
using glasswall_core2;
...
Glasswall glasswall = new Glasswall(); // Instance of the Glasswall wrapper
int session = glasswall.OpenSession();
int returnStatus = glasswall.GetFileTypeID(session, "pdf", ref bufferLength, out buffer);
if (bufferLength >= 0)
{
byte[] msgArray = glasswall.CreateArrayFromBuffer(buffer, bufferLength);
// File type ID for PDF is now stored in a byte array
}
if (glasswall.CloseSession(session))
{
// Error Handling
}
Sinopsis
Tidak disokong dalam Java
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 bagi fileType yang ditentukan di lokasi yang ditentukan.
/**
*
* @param {number} session The ID of the session.
* @param {string} fileType The extension of the file type.
* @param {number} bufferLength The length of the buffer.
* @param {string} outputBuffer The location of the output buffer.
*/
GW2GetFileTypeID(
session,
fileType,
bufferLength,
outputBuffer)
Pulangan
Mengembalikan nilai enum integer GW2_RetStatus. Nombor negatif menunjukkan kegagalan. Jika berjaya, penimbal output diisikan dengan ID 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.GW2GetFileTypeID(session_id, "pdf", output_buffer_size, output_file_buffer);
let error_description = buffer_to_string(output_file_buffer, output_buffer_size);
...