Esempio n. 1
0
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);
}
Esempio n. 2
0
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 ) );
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
}