Библиотека для создания, чтения, удаления, добавления, шифрования файлов и многого другого на внутреннем или внешнем дисковом пространстве с помощью действительно простого API.
Сама библиотека и вся документация доступны на github - ссылка .Ранее я рассказывал как подключать сторонние библиотеки к проекту в sketchware pro. Чтобы приложение имело доступ к функциям чтения/записи файлов ему необходимы права:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> . Задать их можно несколькими способами. Один из самых простых способов - в onCreate поставить пустой блок из коричневой ветки на создания файла. Для импортирование библиотеки в ваш проект необходимо в менеджере библиотек указать адрес репозитория: com.snatik:storage:2.1.0
Далее по документации. Первым делом нужно инициализировать класс
Работаем с внешним хранилищем.
Storage storage = new Storage(getApplicationContext());
проверяем возможна ли запись во внешнее хранилище
boolean isWritable = storage.isExternalWritable();
String path = storage.getExternalStorageDirectory()
Если вы хотите использовать конкретный общедоступный каталог:
Storage storage = SimpleStorage.getExternalStorage(Environment.DIRECTORY_PICTURES);
Работа с внутренней памятью.
Каталог для хранения внутренних файлов приложения:
String path = SimpleStorage.getInternalFilesDirectory();
Каталог кеша:
String path = SimpleStorage.getInternalCacheDirectory();
Корневой каталог внутреннего хранилища:
String path = SimpleStorage.getInternalRootDirectory();
Создание каталога
создание каталога:
storage.createDirectory(path, true);//где path это путь по которому будет создана папка
созданный каталог будет перезаписан если таковой уже существует:
storage.createDirectory(path, true);//где path это путь по которому будет создана папка
Создание файла
создание файла с содержимым в нем:
storage.createFile(path, "содержание файла");//где path это путь по которому будет создан файл. Второй параметр - содержание файла
Содержание файла может быть нескольких типов: String, byte[], Bitmap, Storable.
Чтение файлов
Считать содержимое любого файла в байтовый массив:
byte[] bytes = storage.readFile(path);
прочитать содержимое файла в строку:
String content = storage.readTextFile(path);
Добавление содержимого в файл.
Все данные будут добавлены к уже имеющимся. Два типа содержимого - строка и байтовый массив
storage.appendFile(path, "содержание");// где path это путь к файлу. Второй параметр - добавляемое содержимое
Копирование
storage.copy(fromPath, toPath);//где fromPath это путь копируемой директории либо файла а toPath путь куда будет скопировано
Перемещение
storage.move(fromPath, toPath);// первый параметр путь к директории либо файлу который необходимо переместить. Второй параметр путь к директории куда будет произведено перемещение
Удаление директории
storage.deleteDirectory(path);//где path - путь к директории которую необходимо удалить
Удаление файла
storage.deleteFile(path);
Получение файла
Получать файлы в упорядоченном виде по: имени, дате, размеру
List files = storage.getFiles(path, OrderType.DATE);
Получить файлы и отфильтровать по регулярному выражению:
String regex = ...;List files = storage.getFiles(path, regex);
Получить все вложенные файлы (без каталогов):
List files = storage.getNestedFiles(path);
Разное
проверить существует ли каталог:
boolean dirExists = storage.isDirectoryExists(path);
существует ли файл:
boolean fileExists = storage.isFileExist(path);
Шифрование файлов
Вы можете писать и читать файлы, пока их содержимое зашифровано. Это означает, что никто не может прочитать данные ваших файлов из внешнего или внутреннего хранилища.
Вы продолжите использовать тот же API, что и раньше. Единственное, что вам нужно сделать, это настроить библиотеку Simple Storage до того, как вы захотите создавать / читать зашифрованные данные.
Конфигурация шифрования:
String IVX = "abcdefghijklmnop"; String SECRET_KEY = "secret1234567890"; byte[] SALT = "0000111100001111".getBytes(); EncryptConfiguration configuration = new EncryptConfiguration.Builder(); .setEncryptContent(IVX, SECRET_KEY, SALT).build(); storage.setEncryptConfiguration(configuration);
Теперь вы можете создать новый файл с содержимым, и содержимое будет автоматически зашифровано.
Вы можете прочитать файл, и его содержимое будет расшифровано.
Пример использования шифрования
Создадим зашифрованный файл:
storage.setEncryptConfiguration(configuration); storage.createFile(path, "это секретные данные");
А теперь прочтите данные файла с тем же api:
storage.setEncryptConfiguration(configuration); String content = storage.readTextFile(path);
Комментариев нет:
Отправить комментарий