Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
open3d::utility::filesystem::CFile Class Reference

#include <FileSystem.h>

Public Member Functions

 ~CFile ()
 The destructor closes the file automatically.
bool Open (const std::string &filename, const std::string &mode)
 Open a file.
std::string GetError ()
 Returns the last encountered error for this file.
void Close ()
 Close the file.
int64_t CurPos ()
 Returns current position in the file (ftell).
int64_t GetFileSize ()
 Returns the file size in bytes.
int64_t GetNumLines ()
 Returns the number of lines in the file.
const char * ReadLine ()
template<class T>
size_t ReadData (T *data, size_t num_elems)
size_t ReadData (void *data, size_t elem_size, size_t num_elems)
FILE * GetFILE ()
 Returns the underlying C FILE pointer.

Detailed Description

RAII Wrapper for C FILE* Throws exceptions in situations where the caller is not usually going to have proper handling code:

  • using an unopened CFile
  • errors and ferror from underlying calls (fclose, ftell, fseek, fread, fwrite, fgetpos, fsetpos)
  • reading a line that is too long, caller is unlikely to have proper code to handle a partial next line If you would like to handle any of these issues by not having your code throw, use try/catch (const std::exception &e) { ... }

Constructor & Destructor Documentation

◆ ~CFile()

open3d::utility::filesystem::CFile::~CFile ( )

The destructor closes the file automatically.

Member Function Documentation

◆ Close()

void open3d::utility::filesystem::CFile::Close ( )

Close the file.

◆ CurPos()

int64_t open3d::utility::filesystem::CFile::CurPos ( )

Returns current position in the file (ftell).

◆ GetError()

std::string open3d::utility::filesystem::CFile::GetError ( )

Returns the last encountered error for this file.

◆ GetFILE()

FILE * open3d::utility::filesystem::CFile::GetFILE ( )
inline

Returns the underlying C FILE pointer.

◆ GetFileSize()

int64_t open3d::utility::filesystem::CFile::GetFileSize ( )

Returns the file size in bytes.

◆ GetNumLines()

int64_t open3d::utility::filesystem::CFile::GetNumLines ( )

Returns the number of lines in the file.

◆ Open()

bool open3d::utility::filesystem::CFile::Open ( const std::string & filename,
const std::string & mode )

Open a file.

◆ ReadData() [1/2]

template<class T>
size_t open3d::utility::filesystem::CFile::ReadData ( T * data,
size_t num_elems )
inline

Read data to a buffer.

Parameters
dataThe data buffer to be written into.
num_elemsNumber of elements to be read. The byte size of the element is determined by the size of buffer type.

◆ ReadData() [2/2]

size_t open3d::utility::filesystem::CFile::ReadData ( void * data,
size_t elem_size,
size_t num_elems )

Read data to a buffer.

Parameters
dataThe data buffer to be written into.
elem_sizeElement size in bytes.
num_elemsNumber of elements to read.

◆ ReadLine()

const char * open3d::utility::filesystem::CFile::ReadLine ( )

Throws if we hit buffer maximum. In most cases, calling code is only capable of processing a complete line, if it receives a partial line it will probably fail and it is very likely to fail/corrupt on the next call that receives the remainder of the line.


The documentation for this class was generated from the following files: