This sample reads the name space in which the file was created with FEGetOriginatingNameSpace(), and then resets it to the DOS name space with FESetOriginatingNameSpace()
#include <errno.h>
#include <nwerrno.h>
#include <nwfattr.h>
#include <nwfileng.h>
#include <nwnspace.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main( int argc, char* argv[]) {
int volume_number;
LONG directory_number;
LONG current_ns;
LONG ccode;
if ( argc != 2) {
printf( "Syntax: %s <filename>\n", argv[ 0]);
return EXIT_FAILURE;
}
SetCurrentNameSpace( LONGNameSpace);
ccode = ( LONG) FEMapPathVolumeDirToVolumeDir( strupr( argv[ 1]), 0, 0, &volume_number, &directory_number);
if ( ccode != 0) {
printf( "FEMapPathVolumeDirToVolumeDir failed, ccode = %d\n", ccode);
return EXIT_FAILURE;
}
current_ns = FEGetOriginatingNameSpace(( LONG) volume_number, directory_number);
if ( current_ns == -1) {
printf( "FEGetOriginatingNameSpace failed, errno = %d (%s), NetWareErrno = %d\n", errno, strerror( errno), NetWareErrno);
return EXIT_FAILURE;
}
printf( "%s: ns = %d\n", argv[ 1], current_ns);
ccode = FESetOriginatingNameSpace(( LONG) volume_number, directory_number, LONGNameSpace, DOSNameSpace);
if ( ccode != 0) {
printf( "FESetOriginatingNameSpace failed, ccode = %d\n", ccode);
return EXIT_FAILURE;
}
current_ns = FEGetOriginatingNameSpace(( LONG) volume_number, directory_number);
if ( current_ns == -1) {
printf( "FEGetOriginatingNameSpace failed, errno = %d (%s), NetWareErrno = %d\n", errno, strerror( errno), NetWareErrno);
return EXIT_FAILURE;
}
printf( "%s: ns = %d\n", argv[ 1], current_ns);
return EXIT_SUCCESS;
}
© 2008 Novell, Inc. All Rights Reserved.