![]() |
Сравнение даты изменения файлов и замена старого на новый
Тема такая:
Есть игра, которая хранит сохранения в "блабла" Есть 2 компьютера. Проблема: поиграл в игру на одном компьютере, пересел за второй - а там нет сохранений. Приходится перетаскивать на флешке или ещё как. Более гибкий выход - использовать Dropbox. Что хотелось бы: - поиграл в игру - нажал на батник - батник проверил наличие сохранений (и дату изменения если сохранения есть) в папке в Dropbox - батник проверил дату изменения сохранений в "блабла" - если сохранения в "блабла" новее то батник копирует их в папку на Dropbox с заменой - переходим на другой комп - запускаем батник - батник проверяет опять там и там дату и заменяет в "блабла" новыми сохранениями вот и всё, как и написано в сабже: проверка на новизну файла и замена старого на новый Спасибо. |
|
Не проще ли просто обойтись символическими ссылками?
|
Kazun, сейчас посмотрю
Цитата:
|
Цитата:
Цитата:
|
Цитата:
как я понимаю сделать в папке "блабла" ссылку на файл в папке дропбокса? |
Цитата:
Цитата:
Например, есть у Вас некая игра «Some Game», её настройки хранятся у Вас, например, в «%AppData%» в папке «Some Game». Предположим, что, наряду с другими, внутри этой папки есть и папка «Saves», куда складываются сохранения игры. Тогда достаточно создать связь для этой папки «Saves» в папку Dropbox'а: Не забывайте, что изначальный максимальный размер места, выделяемого Dropbox'ом — 2 Гб. |
Спасибо за разъяснение.
так, значит ссылка на папку в «%AppData% будет лежать в папке на Dropbox, но игра же смотрит именно в «%AppData%. или это работает как синхронизация: нужно открыть Far нажать Alt+F6 и тогда папки синхронизируются? если да, то можно ли сделать так чтобы не открывать и не устанавливать дополнительных программ (Far), только для этого, можно ли обойтись стандартными средствами Windows. И да, у меня Win7x64 на обоих компьютерах. |
Tosyk, синхронизируются они примерно так:
1. Вы играете, сохраняетесь. В «%AppData%\Some Game\Saves» обновляется существующий файл/появляется новый файл. Поскольку созданная ссылка «%UserProfile%\Мои документы\Dropbox\Saves» указывает на «%AppData%\Some Game\Saves» — файлы будут видны и там. Запущенный клиент «Dropbox.exe» обнаруживает, что содержимое в подконтрольной ему папке «%UserProfile%\Мои документы\Dropbox» изменилось и начинает синхронизацию этого содержимого с Вашей учётной записью на своих серверах (в данном случае — выгрузку). 2. Вы приходите в место N, запускаете машину, регистрируетесь под своей учётной записью. Клиент «Dropbox.exe» после своего запуска связывается с Вашей учётной записью на своих серверах, обнаруживает устаревание содержимого подконтрольной ему папки «%UserProfile%\Мои документы\Dropbox» и начинает синхронизацию этого содержимого с Вашей учётной записью на своих серверах (в данном случае — загрузку). Поскольку созданная ссылка «%UserProfile%\Мои документы\Dropbox\Saves» указывает на «%AppData%\Some Game\Saves» — файлы на самом деле будут сохраняться именно в «%AppData%\Some Game\Saves». По завершении синхронизации можете приступать к игре. Естественно, описанную операцию по созданию ссылки из «%AppData%\Some Game\Saves» в «%UserProfile%\Мои документы\Dropbox» нужно проделать один раз на всех машинах, где Вы будете играть. Равно как и установить клиент Dropbox. Цитата:
|
Iska, создаю я значит ссылку на ПЕРВОМ компьютере, появляется символическая в дропбоксе, всё отлитчно (хотя отличить от обычной ссылки её невозможно).
соответственно дропбокс на ВТОРОМ компьютере закачивает этот файл к себе. пробую создать символическую ссылку на ВТОРОМ компьютере, говорит файл уже есть! окей, удаляю файл со ВТОРОГО компьютера из дропбокса и делаю ссылку и создаётся символическая ссылка в дропбоксе на ВТОРОМ компьютере, но в итоге ничего не синхронизирцется, при изменении файла на ВТОРОМ компьютере файл на ПЕРВОМ компьютере не меняется! сомневаюсь что и жёсткие ссылки помогут но может быть у вас есть какие-то мысли по этому поводу? |
Цитата:
Цитата:
Цитата:
Я попробую смоделировать сегодня ситуацию у себя. |
в общем пришёл к понимаю, что dropbox не взаимно синхронизирует файлы с одинаковыми именами, а переименовывает на одной из машин файл с таким же именем (не понятно как он выбирает на какой машине это делать, у меня переименовал более новый файл) в
test (USERNAME-PC's conflicted copy 2012-11-29).ini и помимо переименования закачивает на машину ещё и файл с таким же именем с другой машины, в итоге у нас есть 2 файла: test (USERNAME-PC's conflicted copy 2012-11-29).ini (является переименованной символьной ссылкой) test.ini (является вновь закачанным файлом) для теста создал файл test.ini на обеих машинах всё делал через teamviewer с отключёным dropbox'ом, после чего практически секунда в секунду включил dropbox на обеих машинах, ждал есть у вас какие-нибудь мысли по этому поводу? |
Tosyk, проверил. Сработало обратное: создание ссылки с папки в каталоге Dropbox'а в каталог игры. Т.е., на первой машине Вы берёте каталог с сохранениями и перемещаете его в папку Dropbox'а. Затем создаёте ссылку с этой папки, находящейся в каталоге Dropbox'а, в каталог игры (под тем же именем). На прочих машинах — сначала дожидаетесь, пока Dropbox не синхронизирует папку со своим сервером, затем удаляете папку с сохранениями из каталога игры и делаете ссылку с папки, находящейся в каталоге Dropbox'а, в каталог игры (под тем же именем).
Понятно? Пробуйте. |
Iska, вполне логично и всё работает.
есть пару моментов: 1 - увеличивается размер занимаемого места в Dropbox 2 - при создании игрой новых сохранений/файлов их придётся вручную переносить в Dropbox, что собственно ломает половину идеи - можно ли сделать линк для всей папки, чтобы при сохранении игра сохраняла оригинал файла в Dropbox? а в своей папке хранила только ярлык - можно ли определить имя текущего пользователя (%USERNAME%) и подставлять это имя в .cmd вида: "C:\Users\%USERNAME%\AppData\Local\SOMEGAME\Savegames\savegame00.dat" "D:\My Dropbox\Public\00-archive\01-games\00-savegames\SOMEGAME\Savegames\savegame00.dat" это для того чтобы при переходе на другой компьютер запускать скрипт, который все ссылки сделает сам туда куда нужно спасибо вам огромное в любом случае, половина того, что я хотел сделано даже проще чем я мог подумать. |
Цитата:
Цитата:
|
Iska, ах, точно на папку, вижу, а я делал на каждый файл, хм, что-то не получилось у меня в первый раз сделать ссылку на папку
её мы делаем командой: mklink /D ? edit: всё отлично работает! спасибо! и всё таки можно как то определить имя текущего пользователя, чтобы подставить его в скрипт? |
Цитата:
Цитата:
|
Цитата:
|
Время: 07:12. |
Время: 07:12.
© OSzone.net 2001-