@Override public ParcelFileDescriptor open(File file) throws FileNotFoundException { return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); }
public AssetFileDescriptor getAssetFileDescriptor() { if (mMethod == kCompressStored) { ParcelFileDescriptor pfd; try { pfd = ParcelFileDescriptor.open(mFile, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(pfd, getOffset(), mUncompressedLength); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; }
public AssetFileDescriptor getAssetFileDescriptor() { if (mMethod == kCompressStored) { ParcelFileDescriptor pfd; try { pfd = ParcelFileDescriptor.open(mFile, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(pfd, getOffset(), mUncompressedLength); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; }
@Override public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException { File root=getContext().getFilesDir(); File f=new File(root, uri.getPath()).getAbsoluteFile(); if (!f.getPath().startsWith(root.getPath())) { throw new SecurityException("Resolved path jumped beyond root"); } if (f.exists()) { return(ParcelFileDescriptor.open(f, parseMode(mode))); } throw new FileNotFoundException(uri.getPath()); }
protected ParcelFileDescriptor getSeekableFileDescriptor(String path) throws IOException { ParcelFileDescriptor parcelFileDescriptor; File pdfCopy = new File(path); if (pdfCopy.exists()) { parcelFileDescriptor = ParcelFileDescriptor.open(pdfCopy, ParcelFileDescriptor.MODE_READ_ONLY); return parcelFileDescriptor; } if (isAnAsset(path)) { pdfCopy = new File(context.getCacheDir(), path); parcelFileDescriptor = ParcelFileDescriptor.open(pdfCopy, ParcelFileDescriptor.MODE_READ_ONLY); } else { URI uri = URI.create(String.format("file://%s", path)); parcelFileDescriptor = context.getContentResolver().openFileDescriptor(Uri.parse(uri.toString()), "rw"); } return parcelFileDescriptor; }
@Override public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException { File root=getContext().getFilesDir(); File f=new File(root, uri.getPath()).getAbsoluteFile(); if (!f.getPath().startsWith(root.getPath())) { throw new SecurityException("Resolved path jumped beyond root"); } if (f.exists()) { return(ParcelFileDescriptor.open(f, parseMode(mode))); } throw new FileNotFoundException(uri.getPath()); }
/** Opens a file descriptor from a temporary file. */ @Implementation protected ParcelFileDescriptor openAccessory(UsbAccessory accessory) { try { File tmpUsbDir = RuntimeEnvironment.getTempDirectory().createIfNotExists("usb-accessory").toFile(); return ParcelFileDescriptor.open( new File(tmpUsbDir, "usb-accessory-file"), ParcelFileDescriptor.MODE_READ_WRITE); } catch (FileNotFoundException error) { throw new RuntimeException("Error shadowing openAccessory", error); } }
@Override public AssetFileDescriptor openDocumentThumbnail(String documentId, Point sizeHint, CancellationSignal signal) throws FileNotFoundException { final File file = getFileForDocId(documentId); final ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(pfd, 0, file.length()); }
@Override public ParcelFileDescriptor openDocument(final String documentId, String mode, CancellationSignal signal) throws FileNotFoundException { final File file = getFileForDocId(documentId); final int accessMode = ParcelFileDescriptor.parseMode(mode); return ParcelFileDescriptor.open(file, accessMode); }
@Implementation protected final AssetFileDescriptor openFd(String fileName) throws IOException { Path path = findAssetFile(fileName); if (path.getFileSystem().provider().getScheme().equals("jar")) { path = getFileFromZip(path); } ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(path.toFile(), ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(parcelFileDescriptor, 0, Files.size(path)); }
@Override public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException { final File file = new File(ApplicationProvider.getApplicationContext().getFilesDir(), "test_file"); try { file.createNewFile(); } catch (IOException e) { throw new RuntimeException("error creating new file", e); } return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); } }
@Test public void testGetFd_canRead() throws IOException { ParcelFileDescriptor pfd = ParcelFileDescriptor.open(readOnlyFile, ParcelFileDescriptor.MODE_READ_ONLY); int fd = pfd.getFd(); assertThat(fd).isGreaterThan(0); FileInputStream is = new FileInputStream(new File("/proc/self/fd/" + fd)); assertThat(is.read()).isEqualTo(READ_ONLY_FILE_CONTENTS); is.close(); } }
@Test public void testOpens_canWriteWritableFile() throws Exception { ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_WRITE); assertThat(pfd).isNotNull(); assertThat(pfd.getFileDescriptor().valid()).isTrue(); FileOutputStream os = new FileOutputStream(pfd.getFileDescriptor()); os.write(5); os.close(); }
@Test public void testStatSize_writtenFile() throws Exception { ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_WRITE); assertThat(pfd).isNotNull(); assertThat(pfd.getFileDescriptor().valid()).isTrue(); FileOutputStream os = new FileOutputStream(pfd.getFileDescriptor()); os.write(5); assertThat(pfd.getStatSize()).isEqualTo(1); // One byte. os.close(); }
@Test public void testOpens_canReadReadOnlyFile() throws Exception { ParcelFileDescriptor pfd = ParcelFileDescriptor.open(readOnlyFile, ParcelFileDescriptor.MODE_READ_ONLY); assertThat(pfd).isNotNull(); assertThat(pfd.getFileDescriptor().valid()).isTrue(); FileInputStream is = new FileInputStream(pfd.getFileDescriptor()); assertThat(is.read()).isEqualTo(READ_ONLY_FILE_CONTENTS); pfd.close(); }
@Test public void testAutoCloseOutputStream() throws Exception { File f = new File(ApplicationProvider.getApplicationContext().getFilesDir(), "outfile"); ParcelFileDescriptor pfd = ParcelFileDescriptor.open(f, -1); ParcelFileDescriptor.AutoCloseOutputStream os = new ParcelFileDescriptor.AutoCloseOutputStream(pfd); os.close(); assertThat(pfd.getFileDescriptor().valid()).isFalse(); }
@Test public void testOpens() throws Exception { ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_WRITE); assertThat(pfd).isNotNull(); assertThat(pfd.getFileDescriptor().valid()).isTrue(); pfd.close(); }
@Test public void testStatSize_emptyFile() throws Exception { ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_WRITE); assertThat(pfd).isNotNull(); assertThat(pfd.getFileDescriptor().valid()).isTrue(); assertThat(pfd.getStatSize()).isEqualTo(0); pfd.close(); }
@Test public void testCloses() throws Exception { ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, -1); pfd.close(); assertThat(pfd.getFileDescriptor().valid()).isFalse(); assertThat(pfd.getFd()).isEqualTo(-1); }
@Test public void testAutoCloseInputStream() throws Exception { ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, -1); ParcelFileDescriptor.AutoCloseInputStream is = new ParcelFileDescriptor.AutoCloseInputStream(pfd); is.close(); assertThat(pfd.getFileDescriptor().valid()).isFalse(); }