MTP transfer DATA LOSS

Things you’d like to miss in the future...
Post Reply
hylianloach
Posts: 2
Joined: 18 Oct 2021 19:33

MTP transfer DATA LOSS

Post by hylianloach »

I don't understand how this bug hasn't been fixed. MTP transfers can cause data loss on XYPlorer. It doesn't happen on Windows Explorer.

You simply select "cut" and "paste" from a phone. I did this on my Pixel 4. I lost over 20 photos, permanently deleted from my phone when XYPlorer decided to crash (WHICH IT DOES FREQUENTLY IN THIS PROCESS). I had done this process before on my GoPro, and only today I checked and found out that a huge amount of videos had been missing too.

This is the most nasty buggy process and I've lost a huge amount of valuable photos which I'll never be able to recover. Is this going to be fixed?? No refund can restore the memories that this piece of shit has decided to delete. This is insane.

Thank you for ruining my day.

hylianloach
Posts: 2
Joined: 18 Oct 2021 19:33

Re: MTP transfer DATA LOSS

Post by hylianloach »

Yeah so I distinctly recall having 166 photos and this thing only copied over 100 and deleted all the originals. This the the worst, these were invaluable photos of my wife's 30th and a lot of other photos, including some very specific ones we really wanted to keep for the future.

Absolutely disgusting, is it that hard to implement a safe copy+delete when a move is executed, as opposed to having me do it manually? Jesus f'n christ.

Gandolf

Re: MTP transfer DATA LOSS

Post by Gandolf »

It looks like a similar thing that happened to me some years ago. I lost EDL's, which cost me tens of thousands of pounds, when XY moved them to a different location to where it claimed they were moved to.
I, and a lot of other people, stopped using it at that point.

admin
Site Admin
Posts: 64362
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Re: MTP transfer DATA LOSS

Post by admin »

Oh dear, I understand your rage.

But note that MTP transfer is handled by Windows, not by XYplorer. Whatever went wrong, it happened after the processing left XYplorer and before it returned to it. XYplorer does nothing more than telling Windows: "Move these files from here to here!"

The unreliability of MTP is well known and your case confirms it again. As a result I will add a warning now to the Configuration | General | Tree and List | Items in Tree and List | Show portable devices checkbox.
FAQ | XY News RSS | XY X - Forum users with the Windows version and screen scaling percentage in the Location field of their profiles get priority support.

Gandolf

Re: MTP transfer DATA LOSS

Post by Gandolf »

I transfer data regularly between the computer and two 'phones - a Nokia and an iPhone - using other file managers (NOT File Explorer). No problems, and I've been doing it for years.

Why does XY find it so difficult?

admin
Site Admin
Posts: 64362
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Re: MTP transfer DATA LOSS

Post by admin »

I just managed to lose two photos using File Explorer for a move from hard disk to phone, no XY involved. (Just test pics, of course.)
FAQ | XY News RSS | XY X - Forum users with the Windows version and screen scaling percentage in the Location field of their profiles get priority support.

tomuser
Posts: 135
Joined: 04 Dec 2009 18:52

Re: MTP transfer DATA LOSS

Post by tomuser »

Digging out an old topic.
admin wrote: 20 Oct 2021 16:37
But note that MTP transfer is handled by Windows, not by XYplorer. /... / XYplorer does nothing more than telling Windows: "Move these files from here to here!"
Is this the reason why creation dates are not preserved while copying files from phone to PC? Just needed quick transfer of pictures from phone and even though XYplorer shows correct modification and creation dates for them while browsing phone then after copying them modification date stayed as original but file creation date has changed to current time. Other XYplorer/XYcopy copy actions from other places from disks or network shares are kept as original.

klownboy
Posts: 4380
Joined: 28 Feb 2012 19:27
Location: Windows 11, 24H2 Build 26100.4770 at 100% 2560x1440

Re: MTP transfer DATA LOSS

Post by klownboy »

I've noticed this problem as well. I usually end up having XYplorer set the creation and modification dates from Exif (from the File menu > File Special...). In some cases working from phone pics can be an issue with thumbnails. Whether a thumbnail is recreated depends on the modification date (among other things). If XYplorer sees the "Mod" date as different (in looking at the thumbnail cache ini file), the thumbnail is recreated. At times I wish I could override that control when I know the photo is the same and only the modification date has changed for whatever reason (usually stupid reason). I suppose if we knew the image files had not actually changed, only the date, we could script something to match the ini file "Mod" date / time to the exiting photo modification date / time to avoid thumbnail rebuilding.

highend
Posts: 14476
Joined: 06 Feb 2011 00:33
Location: Win Server 2022 @100%

Re: MTP transfer DATA LOSS

Post by highend »

Only read this if you know how to work with ADB (and where to get it, etc.)^^

Something like this could work (and should be reliable)...

Ofc USB-Debugging must be on on your phone (developer options must have been activated for this!) and it must be connected via USB.
Eventually a driver is necessary to install as well (look at the device manager!)
No transfer mode is necessary (ADB doesn't need it) but make sure that in the developer options things like:
USB debugging (Security settings)
Disable adb authorization timeout
are active if they exist

Ofc you should have adb on your computer and to fill the correct values for
$adbTool: Find the correct path for it on your computer

$adbPattern:
Open a command prompt, cd into your adb folder, execute:

Code: Select all

adb kill-server
adb devices
Look at the output, if your device is listed, get something from that line and fill the variable with it

$srcPicPath:
Open a command prompt, cd into your adb folder, execute:

Code: Select all

adb shell

And if in the shell
navigate to your camera folder via: cd
Finally change your $dstPath variable...

Code: Select all

    $adbTool    = "D:\Tools\@CLI Tools\ADB\adb.exe";
    $adbPattern = "device";                          // Must exist in output of "adb devices"
    $srcPicPath = "/sdcard/DCIM/Camera";             // On your Android phone, case-sensitive!
    $dstPath    = "D:\Users\%USERNAME%\Pictures";    // Default destination path

    // ========================================================================
    // == DO NOT CHANGE ANYTHING BELOW IF YOU DO NOT KNOW WHAT YOU ARE DOING ==
    // ========================================================================

    $srcFiles   = get("SelectedItemsNames");
    $failedLog  = "%TEMP%\~xyplorer_adb_move_pictures_FAILED.txt";
    end (exists($adbTool) != 1), quote($adbTool) . <crlf 2> . "does not exist, aborted!";
    end (!$srcFiles), "No item(s) selected, aborted!";

    // ADB tests
    status "Preparing ADB", , "progress";
    $result = runret(lax("$adbTool" kill-server), "%TEMP%");
    $result = runret(lax("$adbTool" start-server), "%TEMP%");
    $result = runret(lax("$adbTool" devices), "%TEMP%");
    // List of devices attached
    // a8bcd8ea        device
    if (strpos($result, $adbPattern) == -1) {
        echo "Android device not listed, aborted!";
        $result = runret(lax("$adbTool" kill-server), "%TEMP%");
        end true;
    }
    // Prepare log
    $result = writefile($failedLog, "", , "utf8");

    setting "BackgroundFileOps", 0;
    $batFile    = "%TEMP%\~xyplorer_adb_move_pictures.bat";
    $batContent = "@ECHO OFF" . <crlf 2>;
    foreach($srcFile, $srcFiles, <crlf>, "e") {
        $content = <<<>>>
ECHO Moving "$srcFile"...
"$adbTool" pull "$srcPicPath/$srcFile" "$dstPath\$srcFile"
IF EXIST "$dstPath\$srcFile" (
    "$adbTool" shell rm "$srcPicPath/$srcFile"
) ELSE (
    ECHO Failed to transfer: "$srcFile">>$failedLog
)
        >>>;
        $batContent .= $content . <crlf>;
    }
    writefile($batFile, $batContent, , "utf8");
    run lax("cmd" /c "$batFile"), "%TEMP%", 1, 1;

    $result = readfile($failedLog, , , 65001);
    #485;
    if ($result) {
        text $result;
    }
    $result = runret(lax("$adbTool" kill-server), "%TEMP%");
TRY IT WITH TEST IMAGES ON YOUR PHONE FIRST, I'M NOT RESPONSIBLE FOR ANY DATA LOSS:
Navigate to your pictures in your Camera folder on Android via XYplorer, select the pictures you want to move and then run the script...

If something doesn't work, provide as much detailed info as necessary, It's not my phone on your computer^^

And if this works for someone, change the file dates to that of the image you've copied at the end of the script (too lazy to do this, I'm on the Apple eco system, no interest in Android any more)...
One of my scripts helped you out? Please donate via Paypal

admin
Site Admin
Posts: 64362
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Re: MTP transfer DATA LOSS

Post by admin »

tomuser wrote: 23 Jul 2025 14:36 Digging out an old topic.
admin wrote: 20 Oct 2021 16:37
But note that MTP transfer is handled by Windows, not by XYplorer. /... / XYplorer does nothing more than telling Windows: "Move these files from here to here!"
Is this the reason why creation dates are not preserved while copying files from phone to PC? Just needed quick transfer of pictures from phone and even though XYplorer shows correct modification and creation dates for them while browsing phone then after copying them modification date stayed as original but file creation date has changed to current time. Other XYplorer/XYcopy copy actions from other places from disks or network shares are kept as original.
AFAIK File Explorer acts the same way. Only XYplorer's Custom Copy can preserve the creation date, but Custom Copy does not work for MTP.
FAQ | XY News RSS | XY X - Forum users with the Windows version and screen scaling percentage in the Location field of their profiles get priority support.

Post Reply