Delete before copy

Discuss new features and functions
Posts: 1
Joined: 20 Jul 2020

fanderegg

Would it not make sense for the deletion of files from the destination, to take place first, before the new files are syncronized to the target drive. I use FFS for Windows Media Center, to backup TV programs to an HDD, and fragmentation seems to be more likely if the large video files are not deleted prior to the new files looking for free space to park their 10-20GB.

Paul
Posts: 33
Joined: 14 Jul 2020

VladimirII

In case of an error or power failure while synchronising, deleting prior copying is finished would create more anger.

Make enough space free before you synchronise. You can also delete using the context menu in freefilesync. If it is a SSD/M.2 there is no fragmentation, or better no speed loss.

You can try option 'fail-safe file copy' to uncheck, it might help you already.
Posts: 1
Joined: 13 Apr 2022

erwe

Sorry, power outage is an invalid argument for not providing this option! Even rsync has a --delete-before option! After all, we're talking about copying *existing files* from "somewhere" to "somewhere else". A power failure does not lead to any data loss here, because I still have the existing files on "somewhere". I just need to rerun the sync after power failure an all would be fine, IMHO.

Take care!

erwe
Posts: 4
Joined: 11 Dec 2018

cicebear

I have an external hard drive with limited space. I run FFS once and it finishes with warnings, because the disk was full during file copy. But the deletion ran afterwards. I run FFS a second time, and now it works, because due to the deleted files, there is enough space now.
One possibility could be an option, like erwe mentioned above. Another possibilty would be a prompt to ask, once the disk is full and the delete process had not started yet, if to delete first and then try again.
@VladimirII
To make enough space free before is no solution for an automatism.
And also the option 'fail-safe file copy' does not help, when you have many small files, like in my case. (thounsands of "index files" of 1 KB)
Posts: 1
Joined: 7 Sep 2022

Mister Spike

In case of an error or power failure while synchronising, deleting prior copying is finished would create more anger.

Make enough space free before you synchronise. You can also delete using the context menu in freefilesync. If it is a SSD/M.2 there is no fragmentation, or better no speed loss.

You can try option 'fail-safe file copy' to uncheck, it might help you already. VladimirII, 20 Jul 2020, 11:30
I agree that deleting prior to copying can be dangerous in many circumstances, and that backup apps should never needlessly risk file loss, I do think there is a solid case for providing users with a chance to temporarily override that behaviour, along with an appropriate warning, along the lines of:
WARNING: There isn't enough free space on the destination drive to continue.
- CANCEL
- SKIP ONCE
- SKIP ALL
- DELETE DESTINATION FILE BEFORE COPYING (Dangerous)
CANCEL: Ends the sync operation

SKIP: Skips this file and continues, and generate a warning after the run.

SKIP ALL: Skip all files where this is a problem, and generate a warning after the run.

If they click "DELETE FILES":
WARNING: When there is not enough space to safely copy a file, we can delete the old file on the destination disk immediately before we begin the copy. This risks permanent data loss.

Before deleting the destination file, the source file will be tested for problems before proceeding. This will slow down the backup process. Do you want to continue?

- CANCEL
- DELETE DESTINATION FILE ONCE
- DELETE EACH DESTINATION FILE BEFORE COPY AS REQUIRED
CANCEL ends the sync operation

DELETE ONCE will do the source file validation (just scan thru the entire file before proceeding). Once the file is known to be readable for copying, delete the matching destination file, and do the copy. Then continue, and bring up the same warning each time there is insufficient space to continue.

DELETE EACH will do the same, but only for files that cannot fit otherwise.
Posts: 5
Joined: 11 May 2023

splat1985

This needs to be done. The risk taker deletes. It must be parametric. You're not supposed to think about who this is going to piss off. The absence of such a feature makes it very useless.
User avatar
Site Admin
Posts: 7210
Joined: 9 Dec 2007

Zenju

"Delete before copy" has always been available in FFS by default: viewtopic.php?t=1711
Posts: 5
Joined: 11 May 2023

splat1985

First it creates a temp file and copies it there. Then it deletes. This causes the problem of insufficient disk space.
User avatar
Posts: 4056
Joined: 11 Jun 2019

xCSxXenon

Not if you disable 'fail-safe' it seems
Posts: 5
Joined: 11 May 2023

splat1985

Where can I disable
User avatar
Posts: 2450
Joined: 22 Aug 2012

Plerry

> Where can I disable
In the FFS GUI under Tools / Options; the top left checkbox
Posts: 5
Joined: 11 May 2023

splat1985

Thank you very much "xCSxXenon" and "Plerry". This setting worked for me. In fact, it is dangerous because it covers all copying. It would be nice if it was separate for each copy. However, I still recommend adding a program run feature when the process starts or ends.
Posts: 1
Joined: 5 Jun 2023

bhaumiking

I have solved this with following way. I have four drives that need to be backed up e.g. Drive C, Drive D, Drive E, Drive F.
Step 1) Create batch file with auto close for each drive. There will total 4batch files in this case
Step 2) Create master.bat file which will run all these four batch file one after another. Following is code for the master.bat file.
“@echo off
echo Running syncdriveC.ffs_batch...
start /wait "syncdriveC" "C:\Users\Desktop\syncdriveC.ffs_batch"
echo syncdriveC.ffs_batch completed.


echo Running syncdriveD.ffs_batch...
start /wait "syncdriveD" "C:\Users\Desktop\syncdriveD.ffs_batch"
echo syncdriveD.ffs_batch completed.

REM add you all batch files as listed above
echo All batch files executed.”

Step 3)Create a task which is trigged when USB is connected.
Go to Event Manager and enable event logging at following
Application and Services Logs > Microsoft > Windows > DriverFrameworks-UserMode > Operational

Create a task in which gets triggered when usb inserted. Event ID 1003. Give action to run master.bat file.
This way It will start automatic back up all batch files once usb hard disk is connected.
Hope this helps. Revert for any queries.