Класс FMPFile предназначен для работы с файлами.
class FMPFile
Свойство | Описание |
remotePath |
Путь к файлу или директории на сервере.
var remotePath: String { get } |
localPath | Путь к файлу или директории в локальной директории приложения
относительно папки Documents.
var localPath: String { get } |
mount | Имя подключения к хранилищу на сервере.
var mount: String { get } |
type | Тип - файл или директория.
var type: FMPFile.Type { get } |
name | Имя файла или директории.
var name: String { get } |
depth | Глубина при работе с директорией.
var depth: Int { get } |
children | Список дочерних элементов.
var children: [FMPFile]? { get } |
Метод | Описание |
ls(completion:) |
Получение содержимого директории. Рекурсивно проходится по
содержимому директории, обновляя список дочерних элементов children.
Для директории возвращает список дочерних элементов, а для файла
возвращает пустой список.
func ls(completion: @escaping FMPFilesHandler) Параметры:
|
download(completion:) | Загрузка файла или содержимого директории с сервера на устройство.
Загружает с сервера файл или содержимое директории с указанной
глубиной и сохраняет по указанному пути в локальной директории
приложения на устройстве. Если свойство key экземпляра
FMPFile не является пустой строкой, то файлы шифруются
с этим ключом. Перед вызовом метода рекомендуется обновить список
дочерних элементов children с помощью метода ls(completion:).
func download(completion: @escaping FMPRequestResponseHandler) Параметры:
|
upload(completion:) | Загрузка файла с устройства на сервер. Загружает на сервер
файл, находящийся по указанному пути в локальной директории приложения
на устройстве. Если свойство key экземпляра FMPFile не является
пустой строчкой, файлы перед отправкой расшифровываются с этим
ключом. Для директории возвращает ошибку.
func upload(completion: @escaping FMPRequestResponseHandler) Параметры:
|
deleteRemote(completion:) | Удаление файла на сервере. Для директории возвращает ошибку.
func deleteRemote(completion: @escaping FMPRequestResponseHandler) Параметры:
|
loadMeta(completion:) | Запрос метаданных файла с сервера. Для директории возвращает
ошибку.
func loadMeta(completion: @escaping FMPFileMetaHandler) Параметры:
|
isExist(completion:) | Запрос на проверку существования файла на сервере. Для директории
возвращает ошибку.
func isExist(completion: @escaping FMPRequestResponseHandler) Параметры:
|
search(_:caseInsensitive:) | Рекурсивный поиск файлов или директорий по имени. Производит
рекурсивный поиск в дочерних элементах по имени файла или директории.
Поиск производится по условию содержания параметра name в имени
файла/директории. Перед вызовом этого метода рекомендуется обновить
список дочерних элементов children с помощью метода ls(completion:).
func search(_ name: String, caseInsensitive: Bool = false) -> [FMPFile] Параметры:
|
search(_:) | Рекурсивный поиск файлов или директорий по имени. Производит
рекурсивный поиск в дочерних элементах по имени файла или директории.
Поиск производится по условию соответствия имени файла/директории
регулярному выражению. Перед вызовом этого метода рекомендуется
обновить список дочерних элементов children с помощью метода ls(completion:).
func search(_ regex: NSRegularExpression) -> [FMPFile] Параметры:
|
encryptToFile(at:) | Шифрование файла в локальной директории приложения в файл.
func encryptToFile(at path: String) -> Bool Параметры:
|
decryptToFile(at:) | Расшифровка файла в локальной директории приложения в файл.
func decryptToFile(at path: String) Параметры:
|
encryptToData() | Шифрование файла в локальной директории приложения в байтовый
буфер. Возвращает зашифрованный байтовый буфер.
func encryptToData() -> Data |
decryptToData() | Расшифровка файла в локальной директории приложения в байтовый
буфер. Возвращает расшифрованный байтовый буфер.
func decryptToData() -> Data |
decryptToString() | Расшифровка файла в локальной директории приложения в строку.
Возвращает расшифрованную строку.
func decryptToString() -> String |
deleteLocal() | Удаление файла или папки из локальной директории приложения.
func deleteLocal() throws |
copy() | Получение экземпляра класса-строителя для копирования FMPFile.
Возвращает экземпляр класса-строителя FMPFile.Builder.
func copy() -> FMPFile.Builder |
Получение содержимого директории:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let folder: FMPFile = fmp.file.isDirectory().build()
// Получим список дочерних элементов
file.ls() { (success, error, files) in
if success {
// Выведем полученный список названий дочерних элементов
print(files.map {$0.name})
} else {
// Выведем код и описание ошибки
print(error?.code, error?.description)
}
}
Загрузка с сервера файла или содержимого директории на устройство:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Загрузим файл
file.download { (response) in
if response.success {
// Выведем ответ сервера
print(response.result)
} else {
// Выведем код и описание ошибки
print(response.error?.code, response.error?.description)
}
}
Загрузка на сервер файл с устройства:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Загрузим файл
file.upload { (response) in
if response.success {
// Выведем ответ сервера
print(response.result)
} else {
// Выведем код и описание ошибки
print(response.error?.code, response.error?.description)
}
}
Удаление файла на сервере:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Загрузим файл
file.deleteRemote(completion: { (response) in
if response.success {
// Выведем ответ сервера
print(response.result)
} else {
// Выведем код и описание ошибки
print(response.error?.code, response.error?.description)
}
}
Запрос метаданных файла с сервера:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Загрузим метаданные файла
file.loadMeta(completion: { (success, error, meta) in
if success {
// Выведем размер файла
print(meta.size)
} else {
// Выведем код и описание ошибки
print(error?.code, error?.description)
}
}
Проверка существования файла на сервере:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Проверим существование файла на сервере
file.isExist() { (response) in
if response.success {
// Выведем ответ сервера
print(response.result)
} else {
// Выведем код и описание ошибки
print(response.error?.code, response.error?.description)
}
}
Рекурсивный поиск файлов или директорий по имени:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let folder: FMPFile = fmp.file.isDirectory().build()
// Осуществим поиск элементов по имени "name" без учета регистра
let files: [FMPFile] = folder.search("name")
// Построим экземпляр класса NSRegularExpression, соответствующий регулярному выражению
let regex = try! NSRegularExpression(pattern: "[a-z0-9]name[a-z0-9]", options: [])
// Осуществим поиск элементов по имени с использованием регулярного выражения
let results: [FMPFile] = folder.search(regex)
Шифрование файла в локальной директории в файл:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Зашифруем файл в локальной директории в файл по указанному пути
let encryptToFileSuccess: Bool = file.encryptToFile(at: "encryptedLocalPath")
Расшифровка файла в локальной директории в файл:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Расшифруем файл в локальной директории в файл по указанному пути
file.decryptToFile(at: "decryptedLocalPath")
Шифрование файла в локальной директории в байтовый буфер:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Зашифруем файл в локальной директории в байтовый буфер
let encryptedData: Data = file.encryptToData()
Расшифровка файла в локальной директории в байтовый буфер:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Расшифруем файл в локальной директории в байтовый буфер
let decryptedData: Data = file.decryptToData()
Расшифровка файла в локальной директории в строку:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Расшифруем файл в локальной директории в строку
let decryptedString: String = file.decryptToString()
Удаление файла или папки из локальной директории:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Удалим файл из локальной директории приложения
do {
try file.deleteLocal()
} catch let error {
// Выведем описание ошибки
print(error.localizedDescription)
}
Копирование FMPFile:
// Построим экземпляр класса FMPFile. Подробнее в примерах к FMPFile.Builder.
let file: FMPFile = fmp.file.build()
// Скопируем экземпляр класса FMPUser.
let fileCopy: FMPFile = file.copy().build()
См. также: