RCODE f_netwareRemoveDir( const char * pszDirName) { RCODE rc = NE_FLM_OK; FLMBYTE pucPseudoLNamePath[ F_PATH_MAX_SIZE + 1]; FLMBYTE pucLNamePath[ F_PATH_MAX_SIZE]; LONG lVolumeID; LONG lPathID; LONG lLNamePathCount; LONG lErrorCode; f_strcpy( (char *)&pucPseudoLNamePath[1], pszDirName); pucPseudoLNamePath[0] = (FLMBYTE)f_strlen( pszDirName); if( (lErrorCode = ConvertPathString( 0, 0, pucPseudoLNamePath, &lVolumeID, &lPathID, pucLNamePath, &lLNamePathCount)) != 0) { goto Exit; } if( (lErrorCode = DeleteDirectory( 0, lVolumeID, lPathID, pucLNamePath, lLNamePathCount, LONGNameSpace)) != 0) { goto Exit; } Exit: if( lErrorCode) { rc = f_mapPlatformError( lErrorCode, NE_FLM_IO_DELETING_FILE); } return( rc); }
static long OpenServer( LONG (*routine)(), char *name, LONG *handle, LONG attr, LONG privs ) { LONG volumeNumber, pathBase, pathCount, entryNumber; BYTE pathString[128]; BYTE fileName[256]; void *Entry; fileName[1] = '\0'; fileName[0] = AppendStr( (char *)fileName + 1, name ); if (ConvertPathString(0, 0, fileName, &volumeNumber, &pathBase, pathString, &pathCount) != 0) /* The path is invalid */ return (-1); /* Attempt to open the command file */ return( routine(0, 1, volumeNumber, pathBase, pathString, pathCount, 0, attr, privs, PrimaryDataStream, handle, &entryNumber, &Entry ) ); }
RCODE FTKAPI F_DirHdl::createDir( const char * pszDirPath) { RCODE rc = NE_FLM_OK; FLMBYTE pucPseudoLNamePath[ F_PATH_MAX_SIZE + 1]; FLMBYTE pucLNamePath[ F_PATH_MAX_SIZE]; LONG lVolumeID; LONG lPathID; LONG lLNamePathCount; LONG lNewDirectoryID; void * pNotUsed; LONG lErrorCode; f_strcpy( (char *)&pucPseudoLNamePath[1], pszDirPath); pucPseudoLNamePath[0] = (FLMBYTE)f_strlen( pszDirPath); if( (lErrorCode = ConvertPathString( 0, 0, pucPseudoLNamePath, &lVolumeID, &lPathID, pucLNamePath, &lLNamePathCount)) != 0) { goto Exit; } if( (lErrorCode = CreateDirectory( 0, lVolumeID, lPathID, pucLNamePath, lLNamePathCount, LONGNameSpace, MaximumDirectoryAccessBits, &lNewDirectoryID, &pNotUsed)) != 0) { goto Exit; } Exit: if( lErrorCode) { rc = f_mapPlatformError( lErrorCode, NE_FLM_CREATING_FILE); } return( rc); }
RCODE FTKAPI F_DirHdl::openDir( const char * pszDirName, const char * pszPattern) { RCODE rc = NE_FLM_OK; LONG lError = 0; LONG unused; FLMBYTE pseudoLNamePath[ F_PATH_MAX_SIZE + 1]; FLMBYTE LNamePath[ F_PATH_MAX_SIZE]; LONG lLNamePathCount; m_rc = NE_FLM_OK; m_bFirstTime = TRUE; m_bFindOpen = FALSE; m_uiAttrib = 0; f_strcpy( m_szDirectoryPath, pszDirName); f_memset( &m_FindData, 0, sizeof( m_FindData)); m_FindData.lVolumeNumber = F_NW_DEFAULT_VOLUME_NUMBER; m_FindData.lCurrentEntryNumber = 0xFFFFFFFF; m_FindData.lDirectoryNumber = 0xFFFFFFFF; LNamePath[0] = 0; lLNamePathCount = 0; f_strcpy( (char *)&pseudoLNamePath[1], pszDirName); pseudoLNamePath[ 0] = (FLMBYTE)f_strlen( (const char *)&pseudoLNamePath[ 1]); if( (lError = ConvertPathString( 0, 0, pseudoLNamePath, &m_FindData.lVolumeNumber, &unused, (BYTE *)LNamePath, &lLNamePathCount)) != 0) { goto Exit; } if( (lError = MapPathToDirectoryNumber( 0, m_FindData.lVolumeNumber, 0, (BYTE *)LNamePath, lLNamePathCount, LONGNameSpace, &m_FindData.lDirectoryNumber, &unused)) != 0) { goto Exit; } if( pszPattern) { if( f_strlen( pszPattern) >= (FLMINT)sizeof( m_szPattern)) { rc = RC_SET( NE_FLM_MEM); goto Exit; } f_strcpy( m_szPattern, pszPattern); } else { m_szPattern[ 0] = 0; } Exit: if( lError != 0) { m_rc = f_mapPlatformError( lError, NE_FLM_OPENING_FILE); } return( m_rc); }