синхронизация файлов в рабочем каталоге

Общие вопросы о Unity3D

синхронизация файлов в рабочем каталоге

Сообщение george33 22 мар 2017, 15:11

Привет всем! Нужно шарить все файлы в Application.persistentDataPath между приложениями под разными платформами.
Т е они могут меняться в Андроиде и эти изменения попадать в win, web версии и отсюда туда тоже.
В принципе подошло бы и копирование вручную, но в Анроид Application.persistentDataPath закрыт от доступа без рута.
Странно что не нашел ничего стандартного. Задача то вроде ходовая.. Субд с отложенной синхронизацией могут помочь (типо Couchbase Mobile), но че то стремное решение как по мне, тащить какое то СУБД. Знает кто лучше, умнее?
P S dropbox тоже не умеет, хотя вообще нах он нужен если не для этого. мистика однако.
george33
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2014, 15:17

Re: синхронизация файлов в рабочем каталоге

Сообщение waruiyume 22 мар 2017, 15:13

Синтаксис:
Используется csharp
#if UNITY_EDITOR
            path = Application.dataPath.Replace("Assets", String.Empty);
#elif UNITY_IOS && !UNITY_EDITOR
                path = System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal) + "/Documents";                    
#elif UNITY_ANDROID && !UNITY_EDITOR
                path = Application.persistentDataPath;
#endif
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: синхронизация файлов в рабочем каталоге

Сообщение george33 22 мар 2017, 15:46

и к чему это? хочу я забрать я файлы с андроида в вин и как я приспособлю? может я не понял гениальность поста.
waruiyume, проясните плз
>>
#if UNITY_EDITOR
path = Application.dataPath.Replace("Assets", String.Empty);
#elif UNITY_IOS && !UNITY_EDITOR
path = System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal) + "/Documents";
#elif UNITY_ANDROID && !UNITY_EDITOR
path = Application.persistentDataPath;
george33
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2014, 15:17

Re: синхронизация файлов в рабочем каталоге

Сообщение DbIMok 22 мар 2017, 15:51

какой вопрос, такой ответ
george33 писал(а):между приложениями под разными платформами

т.е. есть разные приложения с разными persistentDataPath, под разными платформами и нужно как-то синхронизировать их содержимое?
george33 писал(а):подошло бы и копирование вручную, но в Анроид Application.persistentDataPath закрыт от доступа без рута

не закрыт

непонятно в чем проблема. если это данные, пишите в базу. если файлики, кладите на сервер
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: синхронизация файлов в рабочем каталоге

Сообщение george33 22 мар 2017, 16:31

DbIMok писал(а):какой вопрос, такой ответ
непонятно в чем проблема. если это данные, пишите в базу. если файлики, кладите на сервер

приложение ессно одно под разные платформы. нужно синхронизировать им производимый набор файлов. проблема в отсутствии доступа без рута под андроид в Application.persistentDataPath (спорить бесполезно - проверял и гуглил). решение с сервером не катит - оффлайн работа должна быть обеспечена. поэтому нужно тупо синхронизировать файлы в рабочих каталогах. через сервер или по usb - не важно. главное чтобы минимум кода и головняка для решения. т е идеальным было бы решение такое
Utils.syncData(hostName);
что то похожее есть или вручную долбиться нужно?
george33
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2014, 15:17

Re: синхронизация файлов в рабочем каталоге

Сообщение DbIMok 22 мар 2017, 16:57

george33 писал(а):синхронизировать им производимый набор файлов

у множества пользователей или у себя в процессе разработки?
george33 писал(а):проблема в отсутствии доступа без рута

мне эта проблема непонятна я нажимаю в Total Commander Ctrl+D и попадаю в нужную папочку (без рута)
Изображение
что я делаю не так?
george33 писал(а):решение с сервером не катит

george33 писал(а):через сервер или по usb - не важно

вы определитесь, не важно или не катит

если нужно автоматически из редактора что-то делать с андроидом я бы смотрел в сторону adb
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: синхронизация файлов в рабочем каталоге

Сообщение george33 22 мар 2017, 17:27

DbIMok писал(а):
george33 писал(а):синхронизировать им производимый набор файлов

у множества пользователей или у себя в процессе разработки?
george33 писал(а):

в процессе разработки. конфиги уровней игры.

про тотал командер не понял. Андроидная версия? или win версия может увидеть по usb? ссылка есть где понять прочитать?
в моем коммандере по Ctrl-D открывается список Избранные каталоге. как это может открыть доступ к закрытым андр. папкам мне крайне непонятно.

пока склоняюсь решить все так: free account Mongolab, и через эту монгу перекачивать файлы, используя нехитрый, неказистый код.
но надеюсь на новое озарение.
Последний раз редактировалось george33 22 мар 2017, 17:48, всего редактировалось 1 раз.
george33
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2014, 15:17

Re: синхронизация файлов в рабочем каталоге

Сообщение DbIMok 22 мар 2017, 17:47

george33 писал(а):win версия может увидеть по usb?

да. используется adb плагин https://wincmd.ru/plugring/android_adb.html
george33 писал(а):используя нехитрый, неказистый код

дело ваше. мы пользуемся adb, все устраивает. вот например, сделать скриншот на устройстве, сохранить на sdcard, закачать и открыть на РС, на устройстве удалить. все это в один клик по менюшке.
Синтаксис:
Используется csharp
    private static string adbPath = string.Format("{0}/platform-tools/adb", EditorPrefs.GetString("AndroidSdkRoot"));
    [MenuItem("Android/adb screenshot")]
    private static void AdbScreenshot() {
        try {
            string pngPath = string.Format("/mnt/sdcard/{0}.png", DateTime.Now.ToString("yyyyMMdd_HHmmss"));
            Process adbProcess = new Process();
            adbProcess.StartInfo.FileName = adbPath;
            adbProcess.StartInfo.Arguments = string.Format("-d shell screencap {0}", pngPath);
            adbProcess.StartInfo.UseShellExecute = false;
            adbProcess.StartInfo.CreateNoWindow = true;
            adbProcess.Start();
            adbProcess.WaitForExit();

            adbProcess.StartInfo.Arguments = string.Format("-d pull {0}", pngPath);
            adbProcess.Start();
            adbProcess.WaitForExit();
            Application.OpenURL(Path.GetFileName(pngPath));

            adbProcess.StartInfo.Arguments = string.Format("-d shell rm {0}", pngPath);
            adbProcess.Start();
        } catch (Exception e) {
            Debug.LogWarning(e.Message);
        }
    }
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: синхронизация файлов в рабочем каталоге

Сообщение george33 22 мар 2017, 18:21

DbIMok писал(а):
george33 писал(а):win версия может увидеть по usb?

да. используется adb плагин https://wincmd.ru/plugring/android_adb.html

спасибо за ссылку. но.. не уверен что там напихано вирей - крайне подозрительный пак с сомнительного сайта. с трудом, но воздержусь.

+ если он через adb значит там есть возможность добраться до этого злоедреного Application.persistentDataPath.. но че то гугление на это не помогает даже используя высокопарный инглиш. надежды не теряю. продолжаю копать..
george33
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2014, 15:17

Re: синхронизация файлов в рабочем каталоге

Сообщение DbIMok 22 мар 2017, 18:49

george33 писал(а):не уверен что там напихано вирей

virustotal.com
george33 писал(а):добраться до этого злоедреного Application.persistentDataPath

я уже все дал. но раз так плохо, мне не сложно
Синтаксис:
Используется csharp
        [MenuItem("Android/adb files")]
        private static void AdbFiles() {
                try {
                        string filesDevice = string.Format("/mnt/sdcard/Android/data/{0}/files/", PlayerSettings.bundleIdentifier);
                        string filesLocal = Application.dataPath.Replace("/Assets", "/files");
                        FileUtil.DeleteFileOrDirectory(filesLocal);
                        Process adbProcess = new Process();
                        adbProcess.StartInfo.FileName = adbPath;
                        adbProcess.StartInfo.Arguments = string.Format("-d pull {0}", filesDevice);
                        adbProcess.StartInfo.UseShellExecute = false;
                        adbProcess.StartInfo.CreateNoWindow = true;
                        adbProcess.Start();
                        adbProcess.WaitForExit();
                        Application.OpenURL(filesLocal);
                } catch (Exception e) {
                        Debug.LogWarning(e.Message);
                }
        }
 
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: синхронизация файлов в рабочем каталоге

Сообщение george33 22 мар 2017, 18:57

DbIMok писал(а):
george33 писал(а):не уверен что там напихано вирей

virustotal.com
george33 писал(а):добраться до этого злоедреного Application.persistentDataPath

я уже все дал. но раз так плохо, мне не сложно

хэх. все да не все. у меня Sams note 5 а него карту вставить некуда. я так понимаю что тут (в предложенном меню) это критично.
сл-но мне оно не подходит прямо счас :) вот и кручусь как хомяк на гриле

З Ы они ж не даром его каждую неделю апдейтят этот плуг. ессно для обхода обновлений антивирей. маловероятно что фиксят одну и ту же версию годы каждую неделю.
Последний раз редактировалось george33 22 мар 2017, 19:08, всего редактировалось 1 раз.
george33
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2014, 15:17

Re: синхронизация файлов в рабочем каталоге

Сообщение DbIMok 22 мар 2017, 19:03

george33 писал(а):у меня Sams note 5 а него карту вставить некуда

у меня тоже самс без карты, но код работает.
george33 писал(а):вот и кручусь как хомяк на гриле

хомяк бы уже установил плагин для тотала, попробовал предложенный код. а я всю тему читаю отговорки, как бы не решать задачу. то рут нужен, то телефон без карты, хотя на самом деле все это не важно.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: синхронизация файлов в рабочем каталоге

Сообщение george33 22 мар 2017, 19:11

DbIMok писал(а):
george33 писал(а):у меня Sams note 5 а него карту вставить некуда

у меня тоже самс без карты, но код работает.

Как это? пишет в карту которой нет и все работает. мне так не везет

george33 писал(а):вот и кручусь как хомяк на гриле

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

да как это. не буду я запускать фуфел вирусный тем паче не уверен я что там все нужное работает. но за совет спасибо.
george33
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2014, 15:17

Re: синхронизация файлов в рабочем каталоге

Сообщение DbIMok 22 мар 2017, 19:24

george33 писал(а):не буду я запускать фуфел вирусный

с сайта, которому 16 лет и это самый известный сайт по тотал командеру в рунете? :))
http://ghisler.ch/board/viewtopic.php?t=34980
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: синхронизация файлов в рабочем каталоге

Сообщение george33 22 мар 2017, 20:04

DbIMok писал(а):с сайта, которому 16 лет и это самый известный сайт по тотал командеру в рунете? :))

ok, устыдился. поставил. запустил. каталога, к которому лезет мой app /data/user/0/com..
не видит начиная с user. как вам это не мешает читать данные с Application.persistentDataPath?
george33
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2014, 15:17

След.

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9