openEventsPlatformApp/plugins/cordova-plugin-file/doc/ru/index.md
plugins/cordova-plugin-file/doc/ru/index.mdRaw
1<!---
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements. See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership. The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 "License"); you may not use this file except in compliance
8 with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12 Unless required by applicable law or agreed to in writing,
13 software distributed under the License is distributed on an
14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 KIND, either express or implied. See the License for the
16 specific language governing permissions and limitations
17 under the License.
18-->
19
20# cordova-plugin-file
21
22Этот плагин реализует API файла, позволяя доступ на чтение и запись в файлы, находящиеся на устройстве.
23
24Этот плагин основан на нескольких спецификации, в том числе: HTML5 API файла <http://www.w3.org/TR/FileAPI/>
25
26(Ныне несуществующей) каталоги и систему расширений Последнее: <http://www.w3.org/TR/2012/WD-file-system-api-20120417/> , хотя большая часть кода, плагин был написан, когда ранее спец был текущим: <http://www.w3.org/TR/2011/WD-file-system-api-20110419/>
27
28Он также реализует уничтожал spec: <http://dev.w3.org/2009/dap/file-system/file-writer.html>
29
30Для использования, пожалуйста, обратитесь к HTML5 скалы отличные [файловой системы статьи.][1]
31
32 [1]: http://www.html5rocks.com/en/tutorials/file/filesystem/
33
34Обзор других вариантов хранения найти Cordova [хранения руководства][2].
35
36 [2]: http://cordova.apache.org/docs/en/edge/cordova_storage_storage.md.html
37
38## Установка
39
40 cordova plugin add cordova-plugin-file
41
42
43## Поддерживаемые платформы
44
45* Amazon Fire OS
46* Android
47* BlackBerry 10
48* Firefox OS
49* iOS
50* Windows Phone 7 и 8 *
51* Windows 8 *
52
53* *Эти платформы не поддерживают `FileReader.readAsArrayBuffer` , ни `FileWriter.write(blob)` .*
54
55## Где хранить файлы
56
57По состоянию на v1.2.0 приведены URL-адреса для важных файлов в системные каталоги. Каждый URL-адрес в виде *file:///path/to/spot/*и может быть преобразован в `DirectoryEntry` с помощью`window.resolveLocalFileSystemURL()`.
58
59* `cordova.file.applicationDirectory`-Каталог только для чтения, где установлено приложение. (*iOS*, *Android*, *BlackBerry 10*)
60
61* `cordova.file.applicationStorageDirectory`-Корневой каталог приложения в песочнице; на iOS это место только для чтения (но определенных подкаталогов [как `/Documents` ], чтения записи). Все данные, содержащиеся в частных в приложение. ( *iOS*, *Android*, *BlackBerry 10*)
62
63* `cordova.file.dataDirectory`-Хранения стойкие и частных данных в приложения в песочнице с использованием внутренней памяти (на Android, если необходимо использовать внешнюю память, использовать `.externalDataDirectory` ). На iOS, этот каталог не синхронизируется с iCloud (использование `.syncedDataDirectory` ). (*iOS*, *Android*, *BlackBerry 10*)
64
65* `cordova.file.cacheDirectory`-Каталог для кэшированных данных файлов или все файлы, которые ваше приложение может повторно создать легко. ОС может удалить эти файлы, когда устройства хватает на хранение, тем не менее, приложения не должны опираться на OS, чтобы удалить файлы здесь. (*iOS*, *Android*, *BlackBerry 10*)
66
67* `cordova.file.externalApplicationStorageDirectory`-Пространство приложения на внешнем хранилище. (*Android*)
68
69* `cordova.file.externalDataDirectory`-Куда положить файлы данных конкретного приложения на внешнем хранилище. (*Android*)
70
71* `cordova.file.externalCacheDirectory`-Применение кэш на внешние накопители. (*Android*)
72
73* `cordova.file.externalRootDirectory`-Корень внешние накопители (SD карта). (*Android*, *BlackBerry 10*)
74
75* `cordova.file.tempDirectory`-Временный каталог, что ОС можно снять на будет. Не следует полагаться на OS, чтобы очистить этот каталог; Ваше приложение всегда следует удалять файлы в соответствующих случаях. (*iOS*)
76
77* `cordova.file.syncedDataDirectory`-Содержит файлы приложения, которые должны быть синхронизированы (например, к iCloud). (*iOS*)
78
79* `cordova.file.documentsDirectory`-Файлы для приложения, но это являются значимыми для других приложений (например, файлы Office). (*iOS*)
80
81* `cordova.file.sharedDirectory`-Файлы глобально доступной для всех приложений (*BlackBerry 10*)
82
83## Макеты файловой системы
84
85Хотя технически деталь реализации, она может быть очень полезно знать как `cordova.file.*` карта свойства физические пути на реальном устройстве.
86
87### iOS расположения файловой системы
88
89| Путь к устройству | `Cordova.File.*` | `iosExtraFileSystems` | r/w? | стойкие? | Очищает ОС | Синхронизация | частные |
90|:---------------------------------------------- |:--------------------------- |:--------------------- |:----:|:--------:|:----------:|:-------------:|:-------:|
91| `/ var/мобильного/применения/< UUID > /` | applicationStorageDirectory | - | r | Н/Д | Н/Д | Н/Д | Да |
92| `appname.app/` | applicationDirectory | расслоение | r | Н/Д | Н/Д | Н/Д | Да |
93| `www/` | - | - | r | Н/Д | Н/Д | Н/Д | Да |
94| `Documents/` | documentsDirectory | документы | r/w | Да | Нет | Да | Да |
95| `NoCloud/` | - | документы nosync | r/w | Да | Нет | Нет | Да |
96| `Library` | - | Библиотека | r/w | Да | Нет | Да? | Да |
97| `NoCloud/` | dataDirectory | Библиотека nosync | r/w | Да | Нет | Нет | Да |
98| `Cloud/` | syncedDataDirectory | - | r/w | Да | Нет | Да | Да |
99| `Caches/` | cacheDirectory | кэш | r/w | Да * | Да * * *| | Нет | Да |
100| `tmp/` | tempDirectory | - | r/w | Не * * | Да * * *| | Нет | Да |
101
102* Файлы сохраняются приложения перезагрузки и обновления, но этот каталог может быть очищен, когда ОС желаний. Ваше приложение должно иметь возможность воссоздать любое содержание, которое может быть удалено.
103
104* * Файлы могут сохраняться перезагрузками app, но не полагайтесь на это поведение. Для продолжения обновления файлов не гарантируется. Приложение должно удалить файлы из этого каталога, когда это применимо, как операционная система не гарантирует когда (или даже если) эти файлы будут удалены.
105
106* * *| ОС может очистить содержимое этого каталога, когда он считает это необходимым, но не полагайтесь на это. Необходимо снять этот каталог в зависимости от вашего приложения.
107
108### Расположения Android файловой системы
109
110| Путь к устройству | `Cordova.File.*` | `AndroidExtraFileSystems` | r/w? | стойкие? | Очищает ОС | частные |
111|:--------------------------------- |:----------------------------------- |:------------------------- |:----:|:--------:|:----------:|:-------:|
112| `File:///android_asset/` | applicationDirectory | | r | Н/Д | Н/Д | Да |
113| `/ Data/data/< app-id > /` | applicationStorageDirectory | - | r/w | Н/Д | Н/Д | Да |
114| `cache` | cacheDirectory | кэш | r/w | Да | Да * | Да |
115| `files` | dataDirectory | файлы | r/w | Да | Нет | Да |
116| `Documents` | | документы | r/w | Да | Нет | Да |
117| `< sdcard > /` | externalRootDirectory | SDCard | r/w | Да | Нет | Нет |
118| `Android/data/<app-id>/` | externalApplicationStorageDirectory | - | r/w | Да | Нет | Нет |
119| `cache` | externalCacheDirectry | кэш внешние | r/w | Да | Не * * | Нет |
120| `files` | externalDataDirectory | файлы внешние | r/w | Да | Нет | Нет |
121
122* ОС может периодически удалять этот каталог, но не полагайтесь на это поведение. Очистите содержимое этого каталога в зависимости от вашего приложения. Если пользователь вручную очистить кэш, содержимое этого каталога будут удалены.
123
124* * ОС не ясно этот каталог автоматически; Вы несете ответственность за управление содержимым самостоятельно. Если пользователь вручную очистить кэш, содержимое каталога будут удалены.
125
126**Примечание**: Если нельзя монтировать внешние накопители, `cordova.file.external*` Свойства`null`.
127
128### BlackBerry 10 расположения файловой системы
129
130| Путь к устройству | `Cordova.File.*` | r/w? | стойкие? | Очищает ОС | частные |
131|:--------------------------------------------------- |:--------------------------- |:----:|:--------:|:----------:|:-------:|
132| `File:///Accounts/1000/AppData/ < app id > /` | applicationStorageDirectory | r | Н/Д | Н/Д | Да |
133| `app/native` | applicationDirectory | r | Н/Д | Н/Д | Да |
134| `data/webviews/webfs/temporary/local__0` | cacheDirectory | r/w | Нет | Да | Да |
135| `data/webviews/webfs/persistent/local__0` | dataDirectory | r/w | Да | Нет | Да |
136| `File:///Accounts/1000/Removable/SDCard` | externalRemovableDirectory | r/w | Да | Нет | Нет |
137| `File:///Accounts/1000/Shared` | sharedDirectory | r/w | Да | Нет | Нет |
138
139*Примечание*: при развертывании приложения для работы периметра, все пути относительны /accounts/1000-enterprise.
140
141## Особенности Android
142
143### Местоположение Android постоянного хранения
144
145Есть несколько допустимых мест для хранения постоянных файлов на устройстве Android. Смотрите [эту страницу][3] для широкого обсуждения различных возможностей.
146
147 [3]: http://developer.android.com/guide/topics/data/data-storage.html
148
149Предыдущие версии плагина будет выбирать расположение временных и постоянных файлов при запуске, основанный на ли устройство утверждал, что SD-карта (или эквивалентные хранения раздел) был смонтирован. Если была смонтирована SD-карты, или если большой внутренней памяти раздел был доступен (такие как на устройствах Nexus,), то постоянные файлы будут храниться в корне этого пространства. Это означало, что все apps Cordova могли видеть все файлы, имеющиеся на карте.
150
151Если SD-карты не был доступен, то предыдущих версий будет хранить данные в `/data/data/<packageId>` , которая изолирует приложения друг от друга, но все еще может причина данные распределяются между пользователями.
152
153Это теперь можно выбрать, следует ли хранить файлы в месте хранения внутренних файлов, или с использованием предыдущей логики, с предпочтением в вашем приложении `config.xml` файл. Чтобы сделать это, добавить один из этих двух линий в `config.xml` :
154
155 <preference name="AndroidPersistentFileLocation" value="Internal" />
156
157 <preference name="AndroidPersistentFileLocation" value="Compatibility" />
158
159
160Без этой линии, будет использовать файл плагина `Compatibility` по умолчанию. Если тег предпочтений присутствует и не является одним из этих значений, приложение не запустится.
161
162Если ранее была отгружена приложения для пользователей, используя старые (до 1.0) версию этого плагина и имеет сохраненные файлы в файловой системе постоянных, то вы должны установить предпочтения `Compatibility` . Переключение местоположение для «Внутреннего» будет означать, что существующие пользователи, которые обновить их применение может быть не в состоянии получить доступ к их сохраненные ранее файлы, в зависимости от их устройства.
163
164Если ваше приложение является новым или ранее никогда не хранит файлы в стойких файловой системы, то `Internal` как правило рекомендуется настройка.
165
166## Особенности iOS
167
168* `cordova.file.applicationStorageDirectory`доступен только для чтения; попытка хранения файлов в корневом каталоге не удастся. Использовать один из других `cordova.file.*` свойства, определенные для iOS (только `applicationDirectory` и `applicationStorageDirectory` доступны только для чтения).
169* `FileReader.readAsText(blob, encoding)`
170 * `encoding`Параметр не поддерживается, и UTF-8 кодирование действует всегда.
171
172### iOS место постоянного хранения
173
174Существует два допустимых местоположений для хранения постоянных файлов на устройства iOS: документы каталогов и библиотека. Предыдущие версии плагина только когда-либо постоянные файлы хранятся в папке документы. Это был побочный эффект делает все файлы приложения в iTunes, который часто был непреднамеренным, особенно для приложений, которые обрабатывают большое количество мелких файлов, вместо того, чтобы производить полный комплект документов для экспорта, который является цель каталога.
175
176Это теперь можно выбрать, следует ли хранить файлы в документы или каталоге библиотеки, с предпочтением в вашем приложении `config.xml` файл. Чтобы сделать это, добавить один из этих двух линий в `config.xml` :
177
178 <preference name="iosPersistentFileLocation" value="Library" />
179
180 <preference name="iosPersistentFileLocation" value="Compatibility" />
181
182
183Без этой линии, будет использовать файл плагина `Compatibility` по умолчанию. Если тег предпочтений присутствует и не является одним из этих значений, приложение не запустится.
184
185Если ранее была отгружена приложения для пользователей, используя старые (до 1.0) версию этого плагина и имеет сохраненные файлы в файловой системе постоянных, то вы должны установить предпочтения `Compatibility` . Переключение расположения `Library` будет означать, что существующих пользователей обновить их применения будет не в состоянии получить доступ к их сохраненные ранее файлы.
186
187Если ваше приложение является новым или ранее никогда не хранит файлы в стойких файловой системы, то `Library` как правило рекомендуется настройка.
188
189## Особенности Firefox OS
190
191API файловой системы изначально не поддерживается Firefox OS и реализуется как оболочка поверх indexedDB.
192
193* Не вынимая непустые каталоги
194* Не поддерживает метаданные для каталогов
195* Методы `copyTo` и `moveTo` не поддерживает каталоги
196
197Поддерживаются следующие пути данных: * `applicationDirectory` -использует `xhr` чтобы получить локальные файлы, которые упакованы с приложением. * `dataDirectory` - Для постоянных данных конкретного приложения файлов. * `cacheDirectory` -Кэшированных файлов, которые должны выжить перезагрузки приложения (Apps не следует полагаться на OS, чтобы удалить файлы из здесь).
198
199## Обновление примечания
200
201В v1.0.0 этого плагина `FileEntry` и `DirectoryEntry` структур изменились, более соответствует опубликованной спецификации.
202
203Предыдущий (pre-1.0.0) версии плагина хранятся устройства Абсолют файл расположение в `fullPath` свойства `Entry` объектов. Эти пути обычно будет выглядеть
204
205 /var/mobile/Applications/<application UUID>/Documents/path/to/file (iOS)
206 /storage/emulated/0/path/to/file (Android)
207
208
209Эти пути также были возвращены `toURL()` метода `Entry` объектов.
210
211С v1.0.0 `fullPath` атрибут является путь к файлу, *заданный относительно корня файловой системы HTML*. Таким образом, выше пути будет теперь оба быть представлено `FileEntry` объект с `fullPath` из
212
213 /path/to/file
214
215
216Если ваше приложение работает с устройства Абсолют путями, и ранее были получены эти пути через `fullPath` свойства `Entry` объектов, то вам следует обновить код для использования `entry.toURL()` вместо этого.
217
218Для обратной совместимости, `resolveLocalFileSystemURL()` метод будет принимать путь Абсолют устройства и будет возвращать `Entry` объект, соответствующий его, до тех пор, как этот файл существует в рамках либо `TEMPORARY` или `PERSISTENT` файловых систем.
219
220Это особенно была проблема с плагином передачи файлов, который ранее использовался устройства Абсолют пути (и все еще может принять их). Он был обновлен для корректной работы с файловой системы URL, так что замена `entry.fullPath` с `entry.toURL()` должен решить любые вопросы, получить этот плагин для работы с файлами на устройстве.
221
222В v1.1.0 возвращаемое значение из `toURL()` был изменен (см. \[CB-6394\] (https://issues.apache.org/jira/browse/CB-6394)) для возвращения URL-адрес абсолютным «file://». где это возможно. Для обеспечения ' cdvfile:'-вы можете использовать URL-адрес `toInternalURL()` сейчас. Этот метод будет возвращать теперь файловой системы URL формы
223
224 cdvfile://localhost/persistent/path/to/file
225
226
227который может использоваться для уникальной идентификации файла.
228
229## Список кодов ошибок и значения
230
231Когда возникает ошибка, один из следующих кодов будет использоваться.
232
233| Код | Постоянная |
234| ---:|:----------------------------- |
235| 1 | `NOT_FOUND_ERR` |
236| 2 | `SECURITY_ERR` |
237| 3 | `ABORT_ERR` |
238| 4 | `NOT_READABLE_ERR` |
239| 5 | `ENCODING_ERR` |
240| 6 | `NO_MODIFICATION_ALLOWED_ERR` |
241| 7 | `INVALID_STATE_ERR` |
242| 8 | `SYNTAX_ERR` |
243| 9 | `INVALID_MODIFICATION_ERR` |
244| 10 | `QUOTA_EXCEEDED_ERR` |
245| 11 | `TYPE_MISMATCH_ERR` |
246| 12 | `PATH_EXISTS_ERR` |
247
248## Настройка плагина (опционально)
249
250Набор доступных файловых систем может быть настроен на платформе. IOS и Android признают <preference> тег в `config.xml` имена которых файловые системы для установки. По умолчанию включены все корни файловой системы.
251
252 <preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" />
253 <preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" />
254
255
256### Android
257
258* `files`: Каталог для хранения внутреннего файла приложения
259* `files-external`: Каталог хранения внешнего файла приложения
260* `sdcard`: Глобальный внешний файл каталог хранения (это корень SD-карты, если таковая установлена). Вы должны иметь `android.permission.WRITE_EXTERNAL_STORAGE` разрешение использовать это.
261* `cache`: Каталог внутреннего кэша приложения
262* `cache-external`: Каталог приложения внешней кэш-памяти
263* `root`: Все устройство файловой системы
264
265Android поддерживает также Специальный файловую систему под названием «документы», которая представляет подкаталог «/ документы /» в пределах файловой системы «файлы».
266
267### iOS
268
269* `library`: Каталог библиотеки приложения
270* `documents`: Каталог документов приложения
271* `cache`: Каталог кэша приложения
272* `bundle`: Пакет приложения; расположение самого приложения на диске (только для чтения)
273* `root`: Все устройство файловой системы
274
275По умолчанию каталоги библиотеки и документы можно синхронизировать с iCloud. Вы также можете заказать два дополнительных файловых систем, `library-nosync` и `documents-nosync` , которые представляют Специальный каталог не синхронизируются в `/Library` или `/Documents` файловой системы.