UnityФорумПрограммирование

Доступ к файловой системе или к общей директории

#0
23:56, 24 ноя 2023

Добрый всем вечер!

Вопрос (в двух вариантах):
1а. Могу ли я организовать директорию куда пользователь сможет класть файлы (т.е. директория должна быть видна как и игре на unity так и обычному файловому менеджеру или при (в случае android) файловому менджеру windows когда мы подключаем телефон\планшет к компу)
1б. Могу ли я получить доступ к каким либо директориям вне компетенции моей программы (например в storage\remarks)

Предпочтительнее вариант 1а.

2. Как получить список файлов в этой директории?

Нужно решение и под android и под windows.

Спасибо заранее!

#1
23:58, 24 ноя 2023

Хитренький какой :) андроид точно тебе по-рукам надает, линух тоже
а вот про винду неееенаю, ибо она еще та дырявая.

#2
0:17, 25 ноя 2023

DanQuimby
Почему "хитренький", видимо ты не совсем понял о чем речь. На java это делается (на андроид) с полпинка (доступ к директориям, вариант 1б), можно сделать вставку на java и прописать provider в manifest. Я думал что может у кого-то есть наработка именно ориентированная на Unity. Что касается варианта 1а, тут действительно нужна идея.

#3
0:36, 25 ноя 2023

Вопрос 2 решается через DirectoryInfo dir = new DirectoryInfo(filePath);
Таким образом остается 1а, 1б

#4
3:33, 25 ноя 2023

Надо устанавливать поддержку wevdav или ftp.
Ну, или свой сервак обучать выполнять файловые операции.

#5
15:19, 25 ноя 2023

tigerigor
> На java это делается (на андроид) с полпинка (доступ к директориям, вариант
> 1б), можно сделать вставку на java и прописать provider в manifest.
У андрюши все очень жестко с разрешениями. Доступ из под приложения еще куда ни шло, но доступ к fileDir() и cacheDir() извне на неломанном устройстве (например из под винды) - это очень вряд ли.

Технически вам нужен ExternalStorage - то есть просто хранение файлов на внешнем по отношению к приложению хранилище - например на sdcard. Прописываете в манифест, но поскольку это весьма уязвимая опция - разрешение дается со стороны гугла, а не пользователем. Т.е вам еще предстоит пройти верификацию и как то объяснить гуглу почему вам обязательно нужно это разрешение. Но по сути вы, да, сможете содержать папочку где то на видном месте на устройстве пользователя и сможете скидывать туда что угодно из приложения.

Но поскольку я не работаю с Unity, то честно говоря не уверен по поводу того как это там может быть устроено.

#6
14:09, 26 ноя 2023

Все оказалось проще:

https://assetstore.unity.com/packages/tools/gui/runtime-file-browser-113006

Проверил - работает.

Всем спасибо.

Тема закрыта.

#7
21:20, 27 ноя 2023

Ты только осознавай, что создаешь дыру в безопасности, через которую очень даже можно вскрыть всю систему и заставить ее делать совсем не то, что ты планировал.
Протоколы ftp и webdav совсем не зря обложены кучей ограничений. Если у тебя работает серверный софт, ему доступна местная файловая система и он может начать выполнять запросы на внешние манипуляции с ней. Но о безопасности если не подумать, какой-нибудь гад через это влезет. О безопасности вряд ли думают, это трудно и дорого, тем более что гада пока на горизонте не видно.

#8
0:33, 28 ноя 2023

Zab
Именно для этого существует система ограничений по доступу в android. и вопрос к пользователю - даст он доступ или нет.
Неоднократно выкладывал приложения  специального назначения написанные на java (например по мерчандайзингу или анкетированию) и единственный вопрос который возникал при публикации это по доступу к координатам с параметром fine (и то после 2014 года и потому что я из России). Вопрос по доступу к файлам, галерее, фото не возникал ни у гугла ни у пользователей - это стандартные (!) подтверждения (меняющиеся, уточняющиеся от версии sdk к версии (и от версии android к версии)), никакой крамолы тут нет.
Я задавал вопрос только по теме как это делается в unity.

UnityФорумПрограммирование

Тема в архиве.