Finds a file on a server using the specified default extension and environment variable.
DWORD ctaFindFileEx ( CTAHD ctahd, char *filename, char *extension, char *envvar, char *fullname, unsigned size)
|
Argument |
Description |
|
ctahd |
Context handle that specifies the server on which commands are executed. ctahd can be a void context handle. |
|
filename |
Pointer to the full or partial file name of the file to find. If a path is specified, only that path is searched. If an extension is not specified in filename, extension is appended. |
|
extension |
Pointer to the 3-letter extension to append to filename if one was not specified. If an extension is not needed, set this to NULL. |
|
envvar |
Pointer to the name of the environment variable. If filename does not include a path, the path specified by envvar is searched. If no environment variable is to be searched, set this to NULL. |
|
fullname |
Pointer to a buffer to receive the complete file name that includes the full path. |
|
size |
Size of the fullname buffer. |
|
Return value |
Description |
|
SUCCESS |
|
|
CTAERR_BAD_ARGUMENT |
filename pointer is NULL. |
|
CTAERR_BAD_SIZE |
size is too small to contain the found path. |
|
CTAERR_FILE_NOT_FOUND |
The specified file does not exist. |
|
CTAERR_INVALID_CTAHD |
Context handle is invalid. |
|
CTAERR_NOT_INITIALIZED |
Natural Access is not initialized. Call ctaInitialize first. |
|
CTAERR_SVR_COMM |
Server communications error. |
ctaFindFileEx finds the specified file. It does not open it or create it.
ctahd can be a void context handle. A void context handle refers only to the server on which the commands are executed and not to any real context object. Each server has a unique void context handle. If the void context handle is equal to NULL_CTAHD, it refers to the default server.
If filename ends with a period (.), extension is not appended to the file name.
|
If the file is... |
Then the buffer receives the... |
|---|---|
|
Found |
Full path name of the file. |
|
Not found |
File name as provided and the optional default extension. This value can be used directly as the complete file name for opening or creating a file. |
If a partial file name is specified, the server specified by ctahd determines the default directory path.
|
If the server is... |
Then the default directory path is the path of... |
|---|---|
|
In-process |
The parent process of the application. |
|
Local |
The local server on which Natural Access Server (ctdaemon) started. |
|
Remote |
The remote server on which Natural Access Server (ctdaemon) started. |
fullname includes the default extension if it is appended.
size should be at least CTA_MAXPATH long to accommodate a long directory path. If fullname is NULL, file existence is checked.
void DemoTestFindFile()
{
DWORD ret;
char name[CTA_MAX_PATH] ;
char ext[50];
char env[50];
char fullpath[CTA_MAX_PATH] ;
CTAHD void_ctahd;
/* Server name descriptor */
char server_desc[] = "host.nmss.com:2244";
/* Create a void context handle */
ctaCreateContext(NULL_CTAQUEUEHD, 0, server_desc, &void_ctahd);
printf( "Enter file name: " );
gets( name );
printf( "Enter extension (optional): " );
gets( ext );
printf( "Enter search path environment variable: " );
gets( env );
ret = ctaFindFileEx( void_ctahd, name, ext, env, fullpath,
sizeof(fullpath) );
if (ret == SUCCESS)
printf("File found: %s\n", fullpath);
else
printf("File not found.");
}