Class File

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class File
    extends DiskEntry
    • Field Detail

      • FSCTL_SRV_REQUEST_RESUME_KEY

        private static final int FSCTL_SRV_REQUEST_RESUME_KEY
        See Also:
        Constant Field Values
      • COPY_CHUNK_ALLOWED_STATUS_VALUES

        private static final StatusHandler COPY_CHUNK_ALLOWED_STATUS_VALUES
    • Method Detail

      • write

        public long write​(byte[] buffer,
                          long fileOffset)
        Write the data in buffer to this file at position fileOffset.
        Parameters:
        buffer - the data to write
        fileOffset - The offset, in bytes, into the file to which the data should be written
        Returns:
        the actual number of bytes that was written to the file
      • write

        public long write​(byte[] buffer,
                          long fileOffset,
                          int offset,
                          int length)
        Write the data in buffer to this file at position fileOffset.
        Parameters:
        buffer - the data to write
        fileOffset - The offset, in bytes, into the file to which the data should be written
        offset - the start offset in the data
        length - the number of bytes that are written
        Returns:
        the actual number of bytes that was written to the file
      • write

        public long write​(ByteChunkProvider provider)
        Write all available data from the byte chunk provider to this file. The offset in the file to which data is written is determined by ByteChunkProvider.getOffset().
        Parameters:
        provider - the byte chunk provider
        Returns:
        the actual number of bytes that was written to the file
      • write

        public long write​(ByteChunkProvider provider,
                          ProgressListener progressListener)
        Write all available data from the byte chunk provider to this file. The offset in the file to which data is written is determined by ByteChunkProvider.getOffset().
        Parameters:
        provider - the byte chunk provider
        progressListener - an optional callback that will be invoked when data has been written to the file
        Returns:
        the actual number of bytes that was written to the file
      • writeAsync

        public java.util.concurrent.Future<java.lang.Long> writeAsync​(byte[] buffer,
                                                                      long fileOffset,
                                                                      int offset,
                                                                      int length)
        Write the data Async in buffer to this file at position fileOffset.
        Parameters:
        buffer - the data to write
        fileOffset - The offset, in bytes, into the file to which the data should be written
        offset - the start offset in the data
        length - the number of bytes that are written
        Returns:
        A Future containing the total number of bytes written to the remote.
      • writeAsync

        public java.util.concurrent.Future<java.lang.Long> writeAsync​(ByteChunkProvider provider)
        Async Write all available data from the byte chunk provider to this file. The offset in the file to which data is written is determined by ByteChunkProvider.getOffset().
        Parameters:
        provider - the byte chunk provider
        Returns:
        A future containing the total number of bytes written to the remote.
      • getOutputStream

        public java.io.OutputStream getOutputStream()
      • getOutputStream

        public java.io.OutputStream getOutputStream​(boolean append)
      • getOutputStream

        public java.io.OutputStream getOutputStream​(ProgressListener listener)
      • getOutputStream

        public java.io.OutputStream getOutputStream​(ProgressListener listener,
                                                    boolean append)
      • read

        public int read​(byte[] buffer,
                        long fileOffset)
        Read data from this file starting at position fileOffset into the given buffer.
        Parameters:
        buffer - the buffer to write into
        fileOffset - The offset, in bytes, into the file from which the data should be read
        Returns:
        the actual number of bytes that were read; or -1 if the end of the file was reached
      • read

        public int read​(byte[] buffer,
                        long fileOffset,
                        int offset,
                        int length)
        Read data from this file starting at position fileOffset into the given buffer.
        Parameters:
        buffer - the buffer to write into
        fileOffset - The offset, in bytes, into the file from which the data should be read
        offset - the start offset in the buffer at which to write data
        length - the maximum number of bytes to read
        Returns:
        the actual number of bytes that were read; or -1 if the end of the file was reached
      • readAsync

        java.util.concurrent.Future<SMB2ReadResponse> readAsync​(long offset,
                                                                int length)
      • read

        public void read​(java.io.OutputStream destStream)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • read

        public void read​(java.io.OutputStream destStream,
                         ProgressListener progressListener)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • write

        public long write​(java.nio.ByteBuffer buffer,
                          long fileOffset)
        Write the data in a ByteBuffer to this file at position fileOffset.
        Parameters:
        buffer - the data to write
        fileOffset - The offset, in bytes, into the file to which the data should be written
        Returns:
        the actual number of bytes that was written to the file
      • read

        public long read​(java.nio.ByteBuffer buffer,
                         long fileOffset)
        Read data from this file starting at position fileOffset into the given ByteBuffer.
        Parameters:
        buffer - the ByteBuffer to write into
        fileOffset - The offset, in bytes, into the file from which the data should be read
        Returns:
        the actual number of bytes that were read; or -1 if the end of the file was reached
      • createCopyChunks

        private static java.util.List<CopyChunkRequest.Chunk> createCopyChunks​(long srcOffset,
                                                                               long dstOffset,
                                                                               long length,
                                                                               long maxChunkCount,
                                                                               long maxChunkSize,
                                                                               long maxRequestSize)
        Creates the list of copy chunks to copy length bytes from srcOffset to dstOffset
        Parameters:
        srcOffset - the source file offset at which to start reading
        dstOffset - the destination file offset at which to start writing
        length - the total number of bytes to copy
        maxChunkCount - the maximum number of chunks that may be create
        maxChunkSize - the maximum size of each individual chunk
        maxRequestSize - the maximum total size of all chunks combined
        Returns:
        a list of copy chunks
      • setLength

        public void setLength​(long endOfFile)
                       throws SMBApiException
        The function for truncate or set file length for a file
        Parameters:
        endOfFile - 64-bit signed integer in bytes, MUST be greater than or equal to 0
        Throws:
        SMBApiException
      • getInputStream

        public java.io.InputStream getInputStream()
      • getInputStream

        public java.io.InputStream getInputStream​(ProgressListener listener)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object