React native: как получить размер файла, тип mime и расширение?

Я знаю response-native-fs и response-native-fetch-blob , но мне не хватает простых вспомогательных функций, таких как getFileInfo(file) .

Желаемый псевдокод:

 let fileInfo = getFileInfo('path/to/my/file.txt'); console.log('file size: ' + fileInfo.size); console.log('mime type: ' + fileInfo.type); console.log('extension: ' + fileInfo.extension); 

Каков правильный способ получить размер файла, тип mime и расширение?

Заранее спасибо!

Чтобы получить размер файла с помощью response-native-fetch-blob, я использовал следующий код

Для этого вам нужно установить base-64

 var base64 = require('base-64'); RNFetchBlob.fs.readFile(filePath, 'base64') .then((data) => { var decodedData = base64.decode(data); var bytes=decodedData.length; if(bytes < 1024) console.log(bytes + " Bytes"); else if(bytes < 1048576) console.log("KB:"+(bytes / 1024).toFixed(3) + " KB"); else if(bytes < 1073741824) console.log("MB:"+(bytes / 1048576).toFixed(2) + " MB"); else console.log((bytes / 1073741824).toFixed(3) + " GB"); }) 

Объяснение:

  1. Вышеприведенный код декодирует данные base64 в строку, такую ​​как atob ().
  2. Следующая длина поиска строки
  3. Из этого значения я должен вычислить размер файла.

Если файл слишком велик, используйте метод RNFetchBlob.fs.readStream вместо RNFetchBlob.fs.readFile

Я получаю вычисления байтов из SO-преобразования размера

Код может быть слишком длинным для расчета размера файла. Если кто-нибудь найдет самый простой способ,

Вы можете получить данные о блобе с помощью реакции-native-fetch-blob и использовать для активации расширения-native-mime-типы

 const res = yield RNFetchBlob.config({fileCache: false}).fetch('GET', url, {}) const blob = yield res.blob().then((blob) => { mimetype.extension(blob.type) } )