Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
01.05.2014
Размер:
1.23 Кб
Скачать
	#ifndef DIRFILE_H		/* This is dirfile.h header */

	#define DIRFILE_H

	#include 	"filebase.h"

	#include 	<dirent.h>

	#include	 <string.h>

	/* A class to encapsulate POSIX and UNIX directory files' properties */

	class dirfile

	{

			DIR	*dir_Ptr;
			char    *filename;

		public:

			dirfile(const char* fn) 	{	dir_Ptr = opendir(fn);	
								filename = new char[strlen(fn)+1];
								strcpy(filename,fn);
							};

			~dirfile()			{	if (dir_Ptr) close();	
								delete filename;
							};

			int close()			{	
								return (dir_Ptr) ? closedir(dir_Ptr) : -1;
							};

			int create( const char* fn, mode_t prot)			

							{	return mkdir(fn,prot);	};

			int open(const char* fn) 	{	dir_Ptr=opendir(fn);	
		
								return dir_Ptr ? 0 : -1;

							};

			int read(char* buf, int size)		
							{

								struct dirent *dp = readdir(dir_Ptr);

								if (dp)

									strncpy(buf,dp->d_name,size);

								return (dp)? strlen(dp->d_name) : 0;
							};

			off_t tellg()			{ 	return telldir(dir_Ptr);	};

			void seekg( off_t ofs )		{	seekdir(dir_Ptr, ofs);	};

			int remove()			{	return rmdir(filename);	};

			};

			#endif		/* dirfile.h */
Соседние файлы в папке ch7