Где находится файл, созданный в Кордовом файловом плагине?

Я использовал плагин для файлов Cordova для создания файлов на мобильном устройстве. Ниже приведен код для создания файлов:

window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function (dir) {
   alert(cordova.file.dataDirectory);
   dir.getFile("log.txt", { create: true }, function (file) {
          alert("got the file: "+ file.name + ', ' + file.fullPath);
   });
});

Когда я развертываю приложение на своем телефоне Android, файл будет создан успешно, но я не могу найти созданный файл на своем устройстве.

Хотя cordova.file.dataDirectory указывает на путь file:///data/data/io.cordova.myappId/files/ на моем устройстве, папка io.cordova.myappId не существует в пути data>data, но существует в пути Android>data. Кстати, я проверил как storage>Android>data>io.Cordova.myappId>files, так и storage>data>data, и файл не существует.

Это потому, что:

Созданный файл находится в другом месте, поэтому где я могу его найти?

или

Поскольку он закрыт и мой файловый менеджер не имеет к нему доступа, так как я могу изменить настройку разрешения для публичного файла?

Ответы

Ответ 1

Почему я не могу найти файл на своем устройстве?

Файл создан успешно, но я не могу найти его на своем устройстве, потому что путь dataDirectory, который я указываю для создания файла, является личным путем, и мой файловый менеджер моего устройства не имеет к нему доступа (базовый на в этой таблице). Фактически dataDirectory является опцией Internal Storage.

Внутреннее хранилище. Храните личные данные в памяти устройства.

Вы можете сохранять файлы непосредственно на внутренней памяти устройства. От по умолчанию файлы, сохраненные во внутреннем хранилище, являются приватными для вашего приложения и другие приложения не могут получить к ним доступ (и пользователь). Когда пользователь удаляет ваше приложение, эти файлы удален (ссылка)

Как создать общедоступный файл?

Итак, чтобы создать файл на моем устройстве, к которому я могу получить доступ к файловому менеджеру, я должен использовать один из вариантов общедоступного пути, например: externalDataDirectory. Раньше я думал, что это для хранения файлов на внешней SD-карте, которых у меня не было на телефоне, поэтому я не тестировал их. Но, тестируя его сегодня, он создает файл на моем внутреннем хранилище устройств в Android/data/<app-id>/files, который является общедоступным, и я могу получить к нему доступ с файловым менеджером устройства.

Фактически термин internal и external вводил меня в заблуждение, а external storage мог быть съемным носителем (например, SD-картой) или внутренним (несъемным) хранилищем (ссылка).