File.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef _File_h_
  2. #define _File_h_
  3. #ifndef _XBOX
  4. #include "..\..\common_h\FileService.h"
  5. class FileService;
  6. //Файл для произвольного доступа
  7. class File : public IFile
  8. {
  9. public:
  10. File(const char * _cppFileName, long _cppFileLine);
  11. virtual ~File();
  12. //Открыть файл
  13. bool Open(const char * realPath, IFileService_OpenMode mode);
  14. //Закрыть файл сообщив об ошибке
  15. void ErrorRelease();
  16. public:
  17. //Закрыть файл
  18. virtual void Release();
  19. //Прочитать данные, возвращает количество прочитаных байт
  20. virtual dword Read(void * buffer, dword size);
  21. //Записать данные, возвращает количество записаных байт
  22. virtual dword Write(const void * buffer, dword size);
  23. //Установить текущую позицию, возвращает установленую относительно начала
  24. virtual dword SetPos(dword distanceToMove, MoveMethod moveMethod);
  25. //Получить текущую позицию относительно начала
  26. virtual dword GetPos() const;
  27. //Получить размер файла
  28. virtual dword Size() const;
  29. //Обрезать файл по текущей позиции
  30. virtual bool Truncate();
  31. private:
  32. HANDLE handle;
  33. #ifndef STOP_DEBUG
  34. const char * cppFileName;
  35. long cppFileLine;
  36. #endif
  37. };
  38. #endif
  39. #endif