Bitrix-D7  20.0.0
Класс File
Граф наследования:File:
FileEntry IFileStream FileSystemEntry RobotsFile SitemapFile Archiver CsvFile File SitemapIndex SitemapRuntime

Открытые члены

 __construct ($path, $siteId=null)
 
 open ($mode)
 Opens the file and returns the file pointer. Подробнее...
 
 close ()
 Closes the file. Подробнее...
 
 isExists ()
 
 getContents ()
 
 putContents ($data, $flags=self::REWRITE)
 
 getSize ()
 Returns the file size. Подробнее...
 
 seek ($position)
 Seeks on the file pointer from the beginning (SEEK_SET only). Подробнее...
 
 isWritable ()
 
 isReadable ()
 
 readFile ()
 
 getCreationTime ()
 
 getLastAccessTime ()
 
 getModificationTime ()
 
 markWritable ()
 
 getPermissions ()
 
 delete ()
 
 getContentType ()
 
- Открытые члены унаследованные от FileEntry
 getExtension ()
 
 putContents ($data)
 
 getFileSize ()
 
 isDirectory ()
 
 isFile ()
 
 isLink ()
 
- Открытые члены унаследованные от FileSystemEntry
 isSystem ()
 
 getName ()
 
 getDirectoryName ()
 
 getPath ()
 
 getDirectory ()
 
 getPhysicalPath ()
 
 rename ($newPath)
 

Открытые статические члены

static isFileExists ($path)
 
static getFileContents ($path)
 
static putFileContents ($path, $data, $flags=self::REWRITE)
 
static deleteFile ($path)
 

Поля данных

const REWRITE = 0
 
const APPEND = 1
 

Защищенные данные

 $filePointer
 
- Защищенные данные унаследованные от FileSystemEntry
 $path
 
 $originalPath
 
 $pathPhysical
 
 $siteId
 

Дополнительные унаследованные члены

- Защищенные статические члены унаследованные от FileSystemEntry
static getDocumentRoot ($siteId)
 

Подробное описание

См. определение в файле main/lib/io/file.php строка 4

Конструктор(ы)

◆ __construct()

__construct (   $path,
  $siteId = null 
)

Переопределяет метод предка FileEntry.

Переопределяется в File, Archiver и SitemapFile.

См. определение в файле main/lib/io/file.php строка 14

15  {
17  }

Методы

◆ close()

close ( )

Closes the file.

Исключения
FileNotOpenedException

Переопределяется в File.

См. определение в файле main/lib/io/file.php строка 41

42  {
43  if(!$this->filePointer)
44  {
45  throw new FileNotOpenedException($this->originalPath);
46  }
47  fclose($this->filePointer);
48  $this->filePointer = null;
49  }

◆ delete()

delete ( )

Переопределяет метод предка FileSystemEntry.

См. определение в файле main/lib/io/file.php строка 236

237  {
238  if ($this->isExists())
239  return unlink($this->getPhysicalPath());
240 
241  return true;
242  }

◆ deleteFile()

static deleteFile (   $path)
static

См. определение в файле main/lib/io/file.php строка 274

275  {
276  $f = new self($path);
277  return $f->delete();
278  }

◆ getContents()

getContents ( )

Переопределяет метод предка FileEntry.

См. определение в файле main/lib/io/file.php строка 57

58  {
59  if (!$this->isExists())
60  throw new FileNotFoundException($this->originalPath);
61 
62  return file_get_contents($this->getPhysicalPath());
63  }

◆ getContentType()

getContentType ( )

См. определение в файле main/lib/io/file.php строка 244

245  {
246  if (!$this->isExists())
247  throw new FileNotFoundException($this->originalPath);
248 
249  $finfo = \finfo_open(FILEINFO_MIME_TYPE);
250  $contentType = \finfo_file($finfo, $this->getPath());
251  \finfo_close($finfo);
252 
253  return $contentType;
254  }

◆ getCreationTime()

getCreationTime ( )

Переопределяет метод предка FileSystemEntry.

См. определение в файле main/lib/io/file.php строка 196

197  {
198  if (!$this->isExists())
199  throw new FileNotFoundException($this->originalPath);
200 
201  return filectime($this->getPhysicalPath());
202  }

◆ getFileContents()

static getFileContents (   $path)
static

См. определение в файле main/lib/io/file.php строка 262

263  {
264  $f = new self($path);
265  return $f->getContents();
266  }

◆ getLastAccessTime()

getLastAccessTime ( )

Переопределяет метод предка FileSystemEntry.

См. определение в файле main/lib/io/file.php строка 204

205  {
206  if (!$this->isExists())
207  throw new FileNotFoundException($this->originalPath);
208 
209  return fileatime($this->getPhysicalPath());
210  }

◆ getModificationTime()

getModificationTime ( )

Переопределяет метод предка FileSystemEntry.

См. определение в файле main/lib/io/file.php строка 212

213  {
214  if (!$this->isExists())
215  throw new FileNotFoundException($this->originalPath);
216 
217  return filemtime($this->getPhysicalPath());
218  }

◆ getPermissions()

getPermissions ( )

Переопределяет метод предка FileSystemEntry.

См. определение в файле main/lib/io/file.php строка 228

229  {
230  if (!$this->isExists())
231  throw new FileNotFoundException($this->originalPath);
232 
233  return fileperms($this->getPhysicalPath());
234  }

◆ getSize()

getSize ( )

Returns the file size.

Возвращает
float|int
Исключения
FileNotFoundException
FileOpenException

Переопределяет метод предка FileEntry.

См. определение в файле main/lib/io/file.php строка 86

87  {
88  if (!$this->isExists())
89  {
90  throw new FileNotFoundException($this->originalPath);
91  }
92 
93  static $supportLarge32 = null;
94  if($supportLarge32 === null)
95  {
96  $supportLarge32 = (\Bitrix\Main\Config\Configuration::getValue("large_files_32bit_support") === true);
97  }
98 
99  $size = 0;
100  if(PHP_INT_SIZE < 8 && $supportLarge32)
101  {
102  // 32bit
104 
105  if(fseek($this->filePointer, 0, SEEK_END) === 0)
106  {
107  $size = 0.0;
108  $step = 0x7FFFFFFF;
109  while($step > 0)
110  {
111  if (fseek($this->filePointer, -$step, SEEK_CUR) === 0)
112  {
113  $size += floatval($step);
114  }
115  else
116  {
117  $step >>= 1;
118  }
119  }
120  }
121 
122  $this->close();
123  }
124  else
125  {
126  // 64bit
127  $size = filesize($this->getPhysicalPath());
128  }
129 
130  return $size;
131  }

◆ isExists()

isExists ( )

Переопределяет метод предка FileSystemEntry.

См. определение в файле main/lib/io/file.php строка 51

52  {
53  $p = $this->getPhysicalPath();
54  return file_exists($p) && (is_file($p) || is_link($p));
55  }

◆ isFileExists()

static isFileExists (   $path)
static

См. определение в файле main/lib/io/file.php строка 256

257  {
258  $f = new self($path);
259  return $f->isExists();
260  }

◆ isReadable()

isReadable ( )

Переопределяет метод предка FileEntry.

См. определение в файле main/lib/io/file.php строка 180

181  {
182  if (!$this->isExists())
183  throw new FileNotFoundException($this->originalPath);
184 
185  return is_readable($this->getPhysicalPath());
186  }

◆ isWritable()

isWritable ( )

Переопределяет метод предка FileEntry.

См. определение в файле main/lib/io/file.php строка 172

173  {
174  if (!$this->isExists())
175  throw new FileNotFoundException($this->originalPath);
176 
177  return is_writable($this->getPhysicalPath());
178  }

◆ markWritable()

markWritable ( )

Переопределяет метод предка FileSystemEntry.

См. определение в файле main/lib/io/file.php строка 220

221  {
222  if (!$this->isExists())
223  throw new FileNotFoundException($this->originalPath);
224 
225  @chmod($this->getPhysicalPath(), BX_FILE_PERMISSIONS);
226  }

◆ open()

open (   $mode)

Opens the file and returns the file pointer.

Аргументы
string$mode
Возвращает
resource
Исключения
FileOpenException

Замещает IFileStream.

См. определение в файле main/lib/io/file.php строка 26

27  {
28  $this->filePointer = fopen($this->getPhysicalPath(), $mode."b");
29  if (!$this->filePointer)
30  {
31  throw new FileOpenException($this->originalPath);
32  }
33  return $this->filePointer;
34  }

◆ putContents()

putContents (   $data,
  $flags = self::REWRITE 
)

См. определение в файле main/lib/io/file.php строка 65

66  {
67  $dir = $this->getDirectory();
68  if (!$dir->isExists())
69  $dir->create();
70 
71  if ($this->isExists() && !$this->isWritable())
72  $this->markWritable();
73 
74  return $flags & self::APPEND
75  ? file_put_contents($this->getPhysicalPath(), $data, FILE_APPEND)
76  : file_put_contents($this->getPhysicalPath(), $data);
77  }

◆ putFileContents()

static putFileContents (   $path,
  $data,
  $flags = self::REWRITE 
)
static

См. определение в файле main/lib/io/file.php строка 268

269  {
270  $f = new self($path);
271  return $f->putContents($data, $flags);
272  }

◆ readFile()

readFile ( )

Переопределяет метод предка FileEntry.

См. определение в файле main/lib/io/file.php строка 188

189  {
190  if (!$this->isExists())
191  throw new FileNotFoundException($this->originalPath);
192 
193  return readfile($this->getPhysicalPath());
194  }

◆ seek()

seek (   $position)

Seeks on the file pointer from the beginning (SEEK_SET only).

Аргументы
int | float$position
Возвращает
int
Исключения
FileNotOpenedException

См. определение в файле main/lib/io/file.php строка 140

141  {
142  if(!$this->filePointer)
143  {
144  throw new FileNotOpenedException($this->originalPath);
145  }
146 
147  if($position <= PHP_INT_MAX)
148  {
149  return fseek($this->filePointer, $position, SEEK_SET);
150  }
151  else
152  {
153  $res = fseek($this->filePointer, 0, SEEK_SET);
154  if($res === 0)
155  {
156  do
157  {
158  $offset = ($position < PHP_INT_MAX? $position : PHP_INT_MAX);
159  $res = fseek($this->filePointer, $offset, SEEK_CUR);
160  if($res !== 0)
161  {
162  break;
163  }
164  $position -= PHP_INT_MAX;
165  }
166  while($position > 0);
167  }
168  return $res;
169  }
170  }

Поля

◆ $filePointer

$filePointer
protected

См. определение в файле main/lib/io/file.php строка 12

◆ APPEND

const APPEND = 1

См. определение в файле main/lib/io/file.php строка 9

◆ REWRITE

const REWRITE = 0

См. определение в файле main/lib/io/file.php строка 8


Объявления и описания членов класса находятся в файле:
Bitrix\Main\IO\FileSystemEntry\$path
$path
Definition: filesystementry.php:8
Bitrix\Main\IO\File\open
open($mode)
Opens the file and returns the file pointer.
Definition: main/lib/io/file.php:26
Bitrix\Main\IO\File\close
close()
Closes the file.
Definition: main/lib/io/file.php:41
Bitrix\Main\IO\File\isExists
isExists()
Definition: main/lib/io/file.php:51
Bitrix\Main\IO\File\isWritable
isWritable()
Definition: main/lib/io/file.php:172
Bitrix\Main\IO\FileSystemEntry\getPhysicalPath
getPhysicalPath()
Definition: filesystementry.php:90
Bitrix\Main\IO\FileStreamOpenMode\READ
const READ
Definition: ifilestream.php:11
Bitrix\Main\IO\FileSystemEntry\$siteId
$siteId
Definition: filesystementry.php:11
Bitrix\Main\IO\File\$filePointer
$filePointer
Definition: main/lib/io/file.php:12
Bitrix\Main\IO\File\markWritable
markWritable()
Definition: main/lib/io/file.php:220
Bitrix\Sender\Connector\__construct
__construct(Base $connector)
Constructor.
Definition: resultview.php:40
Bitrix\Main\IO\FileSystemEntry\getDirectory
getDirectory()
Definition: filesystementry.php:71
Bitrix\Main\IO\FileSystemEntry\getPath
getPath()
Definition: filesystementry.php:66