.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2025 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.FSFile:

==========================================================================================================================================
|phoenix_title|  **wx.FSFile**
==========================================================================================================================================

This class represents a single file opened by :ref:`wx.FileSystem`. 
         

It provides more information than wxWidgets' input streams (stream, filename, mime type, anchor). 








         



.. note:: 

   Any pointer returned by a method of :ref:`wx.FSFile`  is valid only as long as the :ref:`wx.FSFile`  object exists. For example a call to :meth:`GetStream`   doesn't `create`  the stream but only returns the pointer to it. In other words after 10 calls to :meth:`GetStream`   you will have obtained ten identical pointers.  







.. seealso:: :ref:`wx.FileSystemHandler`, :ref:`wx.FileSystem`, :ref:`FileSystem Overview <filesystem overview>`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div class="collabsible-wrapper">
      <input id="collapsible-inheritance" class="collapsible-checkbox" type="checkbox">
      <label for="collapsible-inheritance" tabindex="0" title="Show inheritance diagram" class="collapsible-label">Inheritance diagram for class <strong>FSFile</strong>:</label>
      <div class="collapsible-content">
         <p class="graphviz">
            <center><img src="_static/images/inheritance/wx.FSFile_inheritance.svg" alt="Inheritance diagram of FSFile" usemap="#dummy" class="inheritance invert-in-dark-mode"/></center>
            <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.FSFile.html" title="This class represents a single file opened by wx.FileSystem." alt="" coords="5,82,106,111"/> <area shape="rect" id="node2" href="wx.Object.html" title="This is the root class of many of the wxWidgets classes." alt="" coords="6,5,105,34"/> </map> 
         </p>
      </div>
   </div>
   <script type="text/javascript" src="_static/inheritancetoggle.js"></script>



|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.FSFile.__init__`                                                      Constructor.
:meth:`~wx.FSFile.DetachStream`                                                  Detaches the stream from the :ref:`wx.FSFile`  object.
:meth:`~wx.FSFile.GetAnchor`                                                     Returns anchor (if present).
:meth:`~wx.FSFile.GetLocation`                                                   Returns full location of the file, including path and protocol.
:meth:`~wx.FSFile.GetMimeType`                                                   Returns the MIME type of the content of this file.
:meth:`~wx.FSFile.GetModificationTime`                                           Returns time when this file was modified.
:meth:`~wx.FSFile.GetStream`                                                     Returns pointer to the stream.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.FSFile.Anchor`                                                        See :meth:`~wx.FSFile.GetAnchor`
:attr:`~wx.FSFile.Location`                                                      See :meth:`~wx.FSFile.GetLocation`
:attr:`~wx.FSFile.MimeType`                                                      See :meth:`~wx.FSFile.GetMimeType`
:attr:`~wx.FSFile.ModificationTime`                                              See :meth:`~wx.FSFile.GetModificationTime`
:attr:`~wx.FSFile.Stream`                                                        See :meth:`~wx.FSFile.GetStream`
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.FSFile(Object)

   **Possible constructors**::

       FSFile(stream, location, mimetype, anchor, modif) -> None
       
   
   This class represents a single file opened by FileSystem.



   .. method:: __init__(self, stream, location, mimetype, anchor, modif)

      Constructor. 
                 

      You probably won't use it. See the Note for details. 

      It is seldom used by the application programmer but you will need it if you are writing your own virtual ``FS``. For example you may need something similar to `MemoryInputStream`     , but because `MemoryInputStream`       doesn't free the memory when destroyed and thus passing a memory stream pointer into :ref:`wx.FSFile`  constructor would lead to memory leaks, you can write your own class derived from :ref:`wx.FSFile`: 

      ::

                  class MyFSFile(wx.FSFile):

                      def __init__(self):

                          wx.FSFile.__init__(self)



      If you are not sure of the meaning of these params, see the description of the GetXXXX() functions. 




      :param `stream`: The input stream that will be used to access data   
      :type `stream`: wx.InputStream
      :param `location`: The full location (aka filename) of the file   
      :type `location`: string
      :param `mimetype`: MIME type of this file. It may be left empty, in which case the type will be determined from file's extension (location must not be empty in this case).   
      :type `mimetype`: string
      :param `anchor`: Anchor. See :meth:`GetAnchor`   for details.   
      :type `anchor`: string
      :param `modif`: Modification date and time for this file.   
      :type `modif`: wx.DateTime














      :rtype: `None`     




                  





   .. method:: DetachStream(self)

      Detaches the stream from the :ref:`wx.FSFile`  object. 
                 

      That is, the stream obtained with :meth:`GetStream`   will continue its existence after the :ref:`wx.FSFile`  object is deleted. 

      You will have to delete the stream yourself. 
                 

      :rtype: :ref:`wx.InputStream`








   .. method:: GetAnchor(self)

      Returns anchor (if present). 
                 

      The term of **anchor**  can be easily explained using few examples: 



      Usually an anchor is presented only if the MIME type is 'text/html'. But it may have some meaning with other files; for example myanim.avi#200 may refer to position in animation or `reality.wrl.MyView` may refer to a predefined view in ``VRML``. 
                 

      :rtype: `str`








   .. method:: GetLocation(self)

      Returns full location of the file, including path and protocol. 
                 

      Examples: 
                 

      :rtype: `str`








   .. method:: GetMimeType(self)

      Returns the MIME type of the content of this file. 
                 

      It is either extension-based (see :ref:`wx.MimeTypesManager`) or extracted from ``HTTP`` protocol Content-Type header. 
                 

      :rtype: `str`








   .. method:: GetModificationTime(self)

      Returns time when this file was modified. 
                 

      :rtype: :ref:`wx.DateTime`








   .. method:: GetStream(self)

      Returns pointer to the stream. 
                 

      You can use the returned stream to directly access data. You may suppose that the stream provide Seek and GetSize functionality (even in the case of the ``HTTP`` protocol which doesn't provide this by default. Html uses local cache to work around this and to speed up the connection). 
                 

      :rtype: :ref:`wx.InputStream`








   .. attribute:: Anchor

      See :meth:`~wx.FSFile.GetAnchor`


   .. attribute:: Location

      See :meth:`~wx.FSFile.GetLocation`


   .. attribute:: MimeType

      See :meth:`~wx.FSFile.GetMimeType`


   .. attribute:: ModificationTime

      See :meth:`~wx.FSFile.GetModificationTime`


   .. attribute:: Stream

      See :meth:`~wx.FSFile.GetStream`

