Struct tar::Entry
[−]
[src]
pub struct Entry<'a, R: 'a + Read> { // some fields omitted }
A read-only view into an entry of an archive.
This structure is a window into a portion of a borrowed archive which can be inspected. It acts as a file handle by implementing the Reader trait. An entry cannot be rewritten once inserted into an archive.
Methods
impl<'a, R: Read> Entry<'a, R>
[src]
fn path(&self) -> Result<Cow<Path>>
Returns the path name for this entry.
This method may fail if the pathname is not valid unicode and this is called on a Windows platform.
Note that this function will convert any \
characters to directory
separators, and it will not always return the same value as
self.header().path()
as some archive formats have support for longer
path names described in separate entries.
It is recommended to use this method instead of inspecting the header
directly to ensure that various archive formats are handled correctly.
fn path_bytes(&self) -> Cow<[u8]>
Returns the raw bytes listed for this entry.
Note that this function will convert any \
characters to directory
separators, and it will not always return the same value as
self.header().path_bytes()
as some archive formats have support for
longer path names described in separate entries.
fn link_name(&self) -> Result<Option<Cow<Path>>>
Returns the link name for this entry, if any is found.
This method may fail if the pathname is not valid unicode and this is
called on a Windows platform. Ok(None)
being returned, however,
indicates that the link name was not present.
Note that this function will convert any \
characters to directory
separators, and it will not always return the same value as
self.header().link_name()
as some archive formats have support for
longer path names described in separate entries.
It is recommended to use this method instead of inspecting the header
directly to ensure that various archive formats are handled correctly.
fn link_name_bytes(&self) -> Option<Cow<[u8]>>
Returns the link name for this entry, in bytes, if listed.
Note that this will not always return the same value as
self.header().link_name_bytes()
as some archive formats have support for
longer path names described in separate entries.
fn pax_extensions(&mut self) -> Result<Option<PaxExtensions>>
Returns an iterator over the pax extensions contained in this entry.
Pax extensions are a form of archive where extra metadata is stored in key/value pairs in entries before the entry they're intended to describe. For example this can be used to describe long file name or other metadata like atime/ctime/mtime in more precision.
The returned iterator will yield key/value pairs for each extension.
None
will be returned if this entry does not indicate that it itself
contains extensions, or if there were no previous extensions describing
it.
Note that global pax extensions are intended to be applied to all archive entries.
Also note that this function will read the entire entry if the entry itself is a list of extensions.
fn header(&self) -> &Header
Returns access to the header of this entry in the archive.
This provides access to the the metadata for this entry in the archive.
fn unpack<P: AsRef<Path>>(&mut self, dst: P) -> Result<()>
Writes this file to the specified location.
This function will write the entire contents of this file into the
location specified by dst
. Metadata will also be propagated to the
path dst
.
This function will create a file at the path dst
, and it is required
that the intermediate directories are created. Any existing file at the
location dst
will be overwritten.
Examples
use std::fs::File; use tar::Archive; let mut ar = Archive::new(File::open("foo.tar").unwrap()); for (i, file) in ar.entries().unwrap().enumerate() { let mut file = file.unwrap(); file.unpack(format!("file-{}", i)).unwrap(); }
Trait Implementations
impl<'a, R: Read> Read for Entry<'a, R>
[src]
fn read(&mut self, into: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0
Read the exact number of bytes required to fill buf
. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0
Creates a "by reference" adaptor for this instance of Read
. Read more
fn bytes(self) -> Bytes<Self>
1.0.0
Transforms this Read
instance to an Iterator
over its bytes. Read more
fn chars(self) -> Chars<Self>
io
): the semantics of a partial read/write of where errors happen is currently unclear and may change
Transforms this Read
instance to an Iterator
over char
s. Read more
fn chain<R>(self, next: R) -> Chain<Self, R> where R: Read
1.0.0
Creates an adaptor which will chain this stream with another. Read more
fn take(self, limit: u64) -> Take<Self>
1.0.0
Creates an adaptor which will read at most limit
bytes from it. Read more