Изменить папку для сохранения фотографий Facebook (и других)

Я хотел бы задать вопрос о приложении facebook (но оно не единственное, которое делает это). В настоящее время, когда я сохраняю любую фотографию из Facebook, она сохраняется в /DCIM/Facebook.

Теперь меня обычно не волнует, где хранятся фотографии, пока приложение «Галерея» правильно их сортирует, но тот факт, что они попадают в папку DCIM, приводит к неправильному поведению с приложением Google Фото.

Google Photos обрабатывает все эти сохраненные сообщения Facebook как «Фото с камеры» и пытается синхронизировать их с сервером, чего я, очевидно, не хочу (я храню фотоальбомы на GPh, мне не нужны мемы среди них), и я не могу улучшить синхронизацию дополнительных параметров (для синхронизации выбрана только «Камера»).

Есть ли способ исключить эти загруженные изображения из синхронизации? Или заставить Facebook сохранять свои загрузки, скажем, в /Pictures/Facebook?

То же самое, что и выше, также происходит в DCIM/Screenshots при вырезании частей экрана.

Телефон Samsung Galaxy Note 4, Android 6.0.1

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

Я использую Folder Sync в магазине игр для синхронизации определенных папок с внешней SD-картой... Вы можете синхронизировать их с другой резервной копией каждые полчаса, удаляя оригинал после синхронизации!... здесь
Я попробую это, по крайней мере часть копирования уйдет. но если у кого-то есть что-то более автоматическое (я до сих пор вручную очищал папки), было бы признательно
FolderSync имеет автоматический интервал и мгновенную синхронизацию... Он отслеживает изменения в папке и синхронизирует их.
Способ, которым я нашел это, состоял в том, чтобы установить приложение, такое как «сохранить файловую систему», «сохранить на SD-карту» или «сохранить в файл», затем вместо использования функции «сохранить на телефон» в Facebook я бы использовал «общий доступ». возможность поделиться изображением в нужную папку через одно из этих приложений.
Есть прогресс в новых решениях? должно быть по другому...

Ответы (2)

У меня была ТОЧНО такая же проблема. Я не мог найти решение в другом месте. Единственным решением было использовать файл .nomedia в /sdcard/DCIM/Facebookкаталоге и переместить *.jpg в другую папку. Я сделал задачу Tasker, ссылаясь на сообщение Reddit в /r/tasker . Вот описание и XML для его импорта. Вы должны создать %destpartи добавить, .nomediaчтобы %sourcepathон работал. Вы можете запустить эту задачу в профиле как задачу выхода для Facebook и как задачу входа для других приложений для обмена сообщениями, таких как Telegram/Whatsapp и т. д., чтобы ваши мемы получались правильно!

The Meme Mover (3)
A1: Variable Set [ Name:%sourcepath To:/sdcard/DCIM/Facebook/ Recurse Variables:Off Do Maths:Off Append:Off ] 
A2: Variable Set [ Name:%destpath To:/sdcard/Pictures/Facebook/ Recurse Variables:Off Do Maths:Off Append:Off ] 
A3: Variable Set [ Name:%suffix To:(1) Recurse Variables:Off Do Maths:Off Append:Off ] 
A4: Variable Set [ Name:%counter To:0 Recurse Variables:Off Do Maths:On Append:Off ] 
A5: List Files [ Dir:%sourcepath Match:*.jpg/*.png/*.jpeg/*.gif/*.3gp Include Hidden Files:Off Use Root:Off Sort Select:Alphabetic Variable:%filestomove ] 
A6: For [ Variable:%thispathfile Items:%filestomove() ] 
A7: Variable Split [ Name:%thispathfile Splitter:/ Delete Base:Off ] 
A8: Variable Set [ Name:%len To:%thispathfile(#) Recurse Variables:Off Do Maths:Off Append:Off ] 
A9: Variable Set [ Name:%filename To:%thispathfile(%len) Recurse Variables:Off Do Maths:Off Append:Off ] 
A10: Variable Clear [ Name:%exists Pattern Matching:Off ] 
A11: Test File [ Type:Type Data:%destpath%filename Store Result In:%exists Use Root:Off Continue Task After Error:On ] 
A12: If [ %exists !Set ]
A13: Move [ From:%thispathfile To:%destpath%filename Use Root:Off ] 
A14: Scan Card [ File:%destpath%filename ] 
A15: Else 
A16: Variable Split [ Name:%filename Splitter:. Delete Base:Off ] 
A17: Variable Set [ Name:%filename1 To:%filename1%suffix Recurse Variables:Off Do Maths:Off Append:Off ] 
A18: Variable Join [ Name:%filename Joiner:. Delete Parts:Off ] 
A19: Move [ From:%thispathfile To:%destpath%filename Use Root:Off ] 
A20: Scan Card [ File:%destpath%filename ] 
A21: End If 
A22: Variable Add [ Name:%counter Value:1 Wrap Around:0 ] 
A23: End For 
A24: If [ %counter eq 0 ]
A25: [X] Flash [ Text:No memes? Sad. Long:On ] 
A26: Else If [ %counter eq 1 ]
A27: Flash [ Text:%counter meme moved! Long:On ] 
A28: Else 
A29: Flash [ Text:%counter memes moved! Long:On ] 

Не забудьте указать .nomedia в %sourcepath

Вот XML для прямого импорта:

<TaskerData sr="" dvi="1" tv="4.9u4">
<Task sr="task3">
    <cdate>1489093858387</cdate>
    <edate>1489219027762</edate>
    <id>3</id>
    <nme>The Meme Mover</nme>
    <pri>100</pri>
    <Kid sr="Kid">
        <launchID>3</launchID>
        <pkg>me.regalstreak.movefb</pkg>
        <vnme>1.0</vnme>
    </Kid>
    <Action sr="act0" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%sourcepath</Str>
        <Str sr="arg1" ve="3">/sdcard/DCIM/Facebook/</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act1" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%destpath</Str>
        <Str sr="arg1" ve="3">/sdcard/Pictures/Facebook/</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act10" ve="7">
        <code>342</code>
        <se>false</se>
        <Int sr="arg0" val="4"/>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Str sr="arg2" ve="3">%exists</Str>
        <Int sr="arg3" val="0"/>
    </Action>
    <Action sr="act11" ve="7">
        <code>37</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%exists</lhs>
                <op>13</op>
                <rhs></rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act12" ve="7">
        <code>400</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act13" ve="7">
        <code>459</code>
        <Str sr="arg0" ve="3">%destpath%filename</Str>
    </Action>
    <Action sr="act14" ve="7">
        <code>43</code>
    </Action>
    <Action sr="act15" ve="7">
        <code>590</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">.</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act16" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%filename1</Str>
        <Str sr="arg1" ve="3">%filename1%suffix</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act17" ve="7">
        <code>592</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">.</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act18" ve="7">
        <code>400</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act19" ve="7">
        <code>459</code>
        <Str sr="arg0" ve="3">%destpath%filename</Str>
    </Action>
    <Action sr="act2" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%suffix</Str>
        <Str sr="arg1" ve="3">(1)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act20" ve="7">
        <code>38</code>
    </Action>
    <Action sr="act21" ve="7">
        <code>888</code>
        <Str sr="arg0" ve="3">%counter</Str>
        <Int sr="arg1" val="1"/>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act22" ve="7">
        <code>40</code>
    </Action>
    <Action sr="act23" ve="7">
        <code>37</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%counter</lhs>
                <op>0</op>
                <rhs>0</rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act24" ve="7">
        <code>548</code>
        <on>false</on>
        <Str sr="arg0" ve="3">No memes? Sad.</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act25" ve="7">
        <code>43</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%counter</lhs>
                <op>0</op>
                <rhs>1</rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act26" ve="7">
        <code>548</code>
        <Str sr="arg0" ve="3">%counter meme moved!</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act27" ve="7">
        <code>43</code>
    </Action>
    <Action sr="act28" ve="7">
        <code>548</code>
        <Str sr="arg0" ve="3">%counter memes moved!</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act3" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%counter</Str>
        <Str sr="arg1" ve="3">0</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="1"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act4" ve="7">
        <code>412</code>
        <Str sr="arg0" ve="3">%sourcepath</Str>
        <Str sr="arg1" ve="3">*.jpg/*.png/*.jpeg/*.gif/*.3gp</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
        <Str sr="arg5" ve="3">%filestomove</Str>
    </Action>
    <Action sr="act5" ve="7">
        <code>39</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%filestomove()</Str>
    </Action>
    <Action sr="act6" ve="7">
        <code>590</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">/</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act7" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%len</Str>
        <Str sr="arg1" ve="3">%thispathfile(#)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act8" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">%thispathfile(%len)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act9" ve="7">
        <code>549</code>
        <Str sr="arg0" ve="3">%exists</Str>
        <Int sr="arg1" val="0"/>
    </Action>
    <Img sr="icn" ve="2">
        <cls>com.facebook.katana.LoginActivity</cls>
        <pkg>com.facebook.katana</pkg>
    </Img>
</Task></TaskerData>

Скопируйте приведенный выше код и сохраните файл в The Meme Mover.tsk.xmlформате /sdcard/Tasker/tasks. Затем перейдите в Tasker, нажмите и удерживайте «Задачи» и импортируйте это.

Совет для профессионалов: включите A25 только для тестирования, если хотите.

Изменить: код исправлен и обновлен. (1 перемещенный мем вызвал мое обсессивно-компульсивное расстройство.)

Редактировать 2: Были некоторые проблемы, исправлено снова.

Большое спасибо. Пришлось купить Таскер, но это была небольшая цена за спасение

Кто-нибудь еще ищет это в будущем и не знает, как использовать Tasker, или ему трудно понять.

  1. Загрузите это приложение.
  2. Перейти в раздел органайзера.
  3. Сделайте сервисное задание для перемещения файлов, как только они будут найдены в папке Facebook, в другую папку.

Надеюсь, у вас нет пользовательского интерфейса Meme или Samsung, который убивает все в фоновом режиме. Если это так, проверьте это .

Подробности см. на изображении