Cannot real copy folders in windows explorer

What is the problem you are having with rclone?

When rclone is mounted on Windows, you cannot actually copy folders in Windows Explorer;

Original directory:
test ---- testfile

then i Click the right mouse button to copy and paste the test folder, the result directory is
test --- testfile
|__ testfile - Copy

My expected folder structure is:
test --- testfile
test-Copy -----testfile

Run the command 'rclone version' and share the full output of the command.

rclone v1.60.0

  • os/version: Microsoft Windows 10 Pro 20H2 (64 bit)
  • os/kernel: 10.0.19042.1052 (x86_64)
  • os/type: windows
  • os/arch: amd64
  • go/version: go1.19.2
  • go/linking: static
  • go/tags: cmount

and the winfsp version is : 1.11.22176

Which cloud storage system are you using? (eg Google Drive)

minio

The command you were trying to run (eg rclone copy /tmp remote:tmp)

C:/Users/Public/rclone/rclone.exe mount test:test E: --transfers 10 --multi-thread-streams 4 --buffer-size 50Mi --checkers 12 --multi-thread-cutoff 250Mi --cache-dir C:/Users/Public/rclone-cache/ --dir-cache-time 3m --vfs-cache-mode writes --vfs-cache-max-age 10m --vfs-cache-max-size 1000 --vfs-write-back 3s --no-modtime -v --config C:/Users/Public/rclone/test.conf --log-file C:/Users/Public/rclone/test.log --volname test

The rclone config contents with secrets removed.

[test]
type = s3
provider = Minio
access_key_id = aaaaa
secret_access_key = bbbbb
region = cn-north-1
endpoint = http://minio.aaaaa.com:9000
chunk_size = 100Mi
upload_concurrency = 20
disable_http2 = true
upload_cutoff = 1Gi

A log from the command with the -vv flag


2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x2
2022/11/14 11:32:04 DEBUG : /: Statfs: 
2022/11/14 11:32:04 DEBUG : /: >Statfs: stat={Bsize:4096 Frsize:4096 Blocks:274877906944 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Favail:0 Fsid:0 Flag:0 Namemax:255}, errc=0
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x2
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x2
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x2
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x2
2022/11/14 11:32:04 DEBUG : /desktop.ini: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /desktop.ini: >Getattr: errc=-2
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x2
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /desktop.ini: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /desktop.ini: >Getattr: errc=-2
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x2
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x2
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x1
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x1
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x1
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x1
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x1
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: OpenEx: flags=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : test/testfile: Open: flags=O_RDONLY
2022/11/14 11:32:04 DEBUG : test/testfile: newRWFileHandle: 
2022/11/14 11:32:04 DEBUG : test/testfile: >newRWFileHandle: err=<nil>
2022/11/14 11:32:04 DEBUG : test/testfile: >Open: fd=test/testfile (rw), err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >OpenFile: fd=test/testfile (rw), err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >OpenEx: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile: Flush: fh=0x0
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4a80): RWFileHandle.Flush
2022/11/14 11:32:04 DEBUG : /test/testfile: >Flush: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Release: fh=0x0
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4a80): RWFileHandle.Release
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4a80): close: 
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4a80): >close: err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >Release: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: OpenEx: flags=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : test/testfile: Open: flags=O_RDONLY
2022/11/14 11:32:04 DEBUG : test/testfile: newRWFileHandle: 
2022/11/14 11:32:04 DEBUG : test/testfile: >newRWFileHandle: err=<nil>
2022/11/14 11:32:04 DEBUG : test/testfile: >Open: fd=test/testfile (rw), err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >OpenFile: fd=test/testfile (rw), err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >OpenEx: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x1
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: CreateEx: flags=0x502, mode=0700
2022/11/14 11:32:04 DEBUG : test/testfile: Open: flags=O_RDWR|O_CREATE|O_EXCL
2022/11/14 11:32:04 DEBUG : test/testfile: newRWFileHandle: 
2022/11/14 11:32:04 DEBUG : test/testfile: >newRWFileHandle: err=file already exists
2022/11/14 11:32:04 DEBUG : test/testfile: File.openRW failed: file already exists
2022/11/14 11:32:04 DEBUG : test/testfile: >Open: fd=<nil *RWFileHandle>, err=file already exists
2022/11/14 11:32:04 DEBUG : /test/testfile: >CreateEx: errc=-17, fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x1
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: CreateEx: flags=0x502, mode=0700
2022/11/14 11:32:04 DEBUG : test/testfile: Open: flags=O_RDWR|O_CREATE|O_EXCL
2022/11/14 11:32:04 DEBUG : test/testfile: newRWFileHandle: 
2022/11/14 11:32:04 DEBUG : test/testfile: >newRWFileHandle: err=file already exists
2022/11/14 11:32:04 DEBUG : test/testfile: File.openRW failed: file already exists
2022/11/14 11:32:04 DEBUG : test/testfile: >Open: fd=<nil *RWFileHandle>, err=file already exists
2022/11/14 11:32:04 DEBUG : /test/testfile: >CreateEx: errc=-17, fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x1
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: CreateEx: flags=0x502, mode=0700
2022/11/14 11:32:04 DEBUG : test/testfile: Open: flags=O_RDWR|O_CREATE|O_EXCL
2022/11/14 11:32:04 DEBUG : test/testfile: newRWFileHandle: 
2022/11/14 11:32:04 DEBUG : test/testfile: >newRWFileHandle: err=file already exists
2022/11/14 11:32:04 DEBUG : test/testfile: File.openRW failed: file already exists
2022/11/14 11:32:04 DEBUG : test/testfile: >Open: fd=<nil *RWFileHandle>, err=file already exists
2022/11/14 11:32:04 DEBUG : /test/testfile: >CreateEx: errc=-17, fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Flush: fh=0x0
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4ac0): RWFileHandle.Flush
2022/11/14 11:32:04 DEBUG : /test/testfile: >Flush: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Release: fh=0x0
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4ac0): RWFileHandle.Release
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4ac0): close: 
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4ac0): >close: err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >Release: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Getattr: errc=-2
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Getattr: errc=-2
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: OpenEx: flags=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : test/testfile: Open: flags=O_RDONLY
2022/11/14 11:32:04 DEBUG : test/testfile: newRWFileHandle: 
2022/11/14 11:32:04 DEBUG : test/testfile: >newRWFileHandle: err=<nil>
2022/11/14 11:32:04 DEBUG : test/testfile: >Open: fd=test/testfile (rw), err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >OpenFile: fd=test/testfile (rw), err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >OpenEx: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test: Opendir: 
2022/11/14 11:32:04 DEBUG : /test: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /test: >OpenFile: fd=test/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /test: >Opendir: errc=0, fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Getattr: errc=-2
2022/11/14 11:32:04 DEBUG : /test: Releasedir: fh=0x1
2022/11/14 11:32:04 DEBUG : /test: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /test: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /test: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: CreateEx: flags=0x502, mode=0700
2022/11/14 11:32:04 DEBUG : test/testfile - Copy: Open: flags=O_RDWR|O_CREATE|O_EXCL
2022/11/14 11:32:04 DEBUG : test/testfile - Copy: newRWFileHandle: 
2022/11/14 11:32:04 DEBUG : test/testfile - Copy(0xc0005f4c40): openPending: 
2022/11/14 11:32:04 DEBUG : test/testfile - Copy: vfs cache: truncate to size=0
2022/11/14 11:32:04 DEBUG : test: Added virtual directory entry vAddFile: "testfile - Copy"
2022/11/14 11:32:04 DEBUG : test/testfile - Copy(0xc0005f4c40): >openPending: err=<nil>
2022/11/14 11:32:04 DEBUG : test/testfile - Copy: >newRWFileHandle: err=<nil>
2022/11/14 11:32:04 DEBUG : test: Added virtual directory entry vAddFile: "testfile - Copy"
2022/11/14 11:32:04 DEBUG : test/testfile - Copy: >Open: fd=test/testfile - Copy (rw), err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >CreateEx: errc=0, fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Getattr: fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Getattr: fh=0x0
2022/11/14 11:32:04 DEBUG : /test/testfile: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Getattr: fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Truncate: size=70, fh=0x1
2022/11/14 11:32:04 DEBUG : test/testfile - Copy: vfs cache: truncate to size=70
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Truncate: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Read: ofst=0, fh=0x0
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4bc0): _readAt: size=70, off=0
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4bc0): openPending: 
2022/11/14 11:32:04 DEBUG : test/testfile: vfs cache: checking remote fingerprint "70,2022-11-14 03:30:58.0395285 +0000 UTC,18ab9e2980f7223750c5ed4833f45dab" against cached fingerprint "70,2022-11-14 03:30:58.0395285 +0000 UTC,18ab9e2980f7223750c5ed4833f45dab"
2022/11/14 11:32:04 DEBUG : test/testfile: vfs cache: truncate to size=70
2022/11/14 11:32:04 DEBUG : test: Added virtual directory entry vAddFile: "testfile"
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4bc0): >openPending: err=<nil>
2022/11/14 11:32:04 DEBUG : vfs cache: looking for range={Pos:0 Size:70} in [{Pos:0 Size:70}] - present true
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4bc0): >_readAt: n=70, err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >Read: n=70
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Getattr: fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Write: ofst=0, fh=0x1
2022/11/14 11:32:04 DEBUG : test/testfile - Copy(0xc0005f4c40): _writeAt: size=70, off=0
2022/11/14 11:32:04 DEBUG : test/testfile - Copy(0xc0005f4c40): >_writeAt: n=70, err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Write: n=70
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Getattr: fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Utimens: tmsp=[{Sec:1668396698 Nsec:53416700} {Sec:1668396698 Nsec:53416700}]
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Utimens: SetModTime: 2022-11-14 11:31:38.0534167 +0800 CST
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Utimens: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Getattr: fh=0x1
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Flush: fh=0x0
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4bc0): RWFileHandle.Flush
2022/11/14 11:32:04 DEBUG : /test/testfile: >Flush: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile: Release: fh=0x0
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4bc0): RWFileHandle.Release
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4bc0): close: 
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Flush: fh=0x1
2022/11/14 11:32:04 DEBUG : test/testfile - Copy(0xc0005f4c40): RWFileHandle.Flush
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Flush: errc=0
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: Release: fh=0x1
2022/11/14 11:32:04 DEBUG : test/testfile - Copy(0xc0005f4c40): RWFileHandle.Release
2022/11/14 11:32:04 DEBUG : test/testfile - Copy(0xc0005f4c40): close: 
2022/11/14 11:32:04 DEBUG : test/testfile: vfs cache: setting modification time to 2022-11-14 11:30:58.0395285 +0800 CST
2022/11/14 11:32:04 DEBUG : test/testfile - Copy: vfs cache: setting modification time to 2022-11-14 11:32:04.0895319 +0800 CST m=+30.421777101
2022/11/14 11:32:04 DEBUG : test/testfile(0xc0005f4bc0): >close: err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile: >Release: errc=0
2022/11/14 11:32:04 INFO  : test/testfile - Copy: vfs cache: queuing for upload in 3s
2022/11/14 11:32:04 DEBUG : test/testfile - Copy(0xc0005f4c40): >close: err=<nil>
2022/11/14 11:32:04 DEBUG : /test/testfile - Copy: >Release: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Opendir: 
2022/11/14 11:32:04 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/11/14 11:32:04 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/11/14 11:32:04 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/11/14 11:32:04 DEBUG : /: Statfs: 
2022/11/14 11:32:04 DEBUG : /: >Statfs: stat={Bsize:4096 Frsize:4096 Blocks:274877906944 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Favail:0 Fsid:0 Flag:0 Namemax:255}, errc=0
2022/11/14 11:32:04 DEBUG : /: Releasedir: fh=0x0
2022/11/14 11:32:04 DEBUG : /: >Releasedir: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0
2022/11/14 11:32:04 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/11/14 11:32:04 DEBUG : /: >Getattr: errc=0

I'm not quite following what the error/issue is from trying to read this but it might be too early for me.

I thought Windows makes a 'copy' of a file if already exists.

I think @A-BenMao is trying to duplicate E:/test, which is their top-level folder:

E:
├── test
│   └── testfile

and instead of the result being a new top-level folder:

E:
├── test
│   └── testfile
├── test-Copy
│   └── testfile

they're getting this:

E:
├── test
│   └── testfile
│   └── testfile-Copy

I believe this is normal behaviour, since I get an error when I try to create more than one top-level folder:

I've always been under the impression that rclone maps one folder to one drive letter.

So in my mind if /test is mapped to E:, then E:/test becomes like a root directory — duplicating it doesn't make sense.

I suggest renaming the remote to something more helpful like "minio", then adding "test" and "testfile" as children:

E:
├── minio
│   └── test
│   │   └── testfile

Copying and pasting E:/minio/test should work as expected.

First of all, thank you for your answer, before I mount by rclone , the E disk does not exist, then I mount a minio storage to the E disk, then I use the Windows right click copy and paste folder, the result is as follows:

E:
├── test
│   └── testfile
├── test1
│   └── testfile1

test and test1 folder is minio storage folder in bucket ,not a bucket

then i copy and paste test folder by Windows right click, then:

E:
├── test
│   └── testfile
│   └── testfile-Copy
├── test1
│   └── testfile1

I'm working on a folder, but the result is the folder doesn't change, the files in the folder change

I'm working on a folder, but the result is the folder doesn't change, the files in the folder change

Go to E:/ then Right Click > New > Folder and call it test2 like this:

E:
├── test
│   └── testfile
├── test1
│   └── testfile1
├── test2

Does that work, or does Windows give you an error? :thinking:

This operation can be completed normally, with no error reported

OK. Now create this hierarchy:

E:
├── test
│   └── test1
│   │   └── testfile

If you duplicate (copy and paste) test1 which result do you get?

Result 1

E:
├── test
│   └── test1
│   │   └── testfile
│   └── test1-Copy
│   │   └── testfile

Result 2

E:
├── test
│   └── test1
│   │   └── testfile
│   │   └── testfile-Copy

Thank you for your reply. Because I am in China, the time zone is very different, so my reply is slow.
I did it your way, and the result is Result 2

No problem! :slight_smile:

Hmm, that is strange.

I'm using Windows too, but I can't reproduce this issue on my Wasabi mount. I wonder if it's related to MinIO :thinking:

Do you think this issue might be related?

I think this issue is similar to mine, you provide a new idea, I will try using rclone on Windows to mount other S3 storage and see if the results are the same,thank you very much

1 Like

I captured the packet on Windows (use wireshark) at the address of minio endpoint.
Then, when I copied the aaa folder by right-clicking, and then pasted it by right-clicking in the test directory,

E:
├── test
│   └── aaa
│   │   └── test

the captured packet result was shown in the figure.

When rclone+winfsp sends a PUT request to the endpoint, the PUT object name is aaa/test - copy , the subfile is already suffix-copy, so this problem should not be caused by minio...;


Normally, this PUT requests should be aaa-Copy/test, so the question now is who created the PUT request, winfsp or rclone, or Windows?

Nice. Using Wireshark was a clever test :+1:

Some things I'm curious about:

  1. Does copy/paste behave normally on your local drive?
  2. Another way to copy in Windows is to hold the Ctrl key and drag the item. Same problem?
  3. In File Explorer try toggling view > options > change folder and search options > view > hide folder merge conflicts and see if it makes a difference.
  1. Does copy/paste behave normally on your local drive?
    yes , copy/paste behave is normally on local drive (system drive , data drive , C: , D: ...)

  2. Another way to copy in Windows is to hold the Ctrl key and drag the item. Same problem?
    I tried using ctrl to drag the folder, and the result was the same as before, sad.

  3. In File Explorer try toggling view > options > change folder and search options > view > hide folder merge conflicts and see if it makes a difference.

i tried turn off and on hide folder merge conflicts , the result was same as before...

I think it's rclone based on seeing PUT discussed here and here. But I could be wrong.

Have you tried using a simpler mount command (perhaps some of your --options are causing trouble)?

The good news is, I solved this problem.

You will never believe what causes this phenomenon!

The way I previously executed rclone mount was in Windows service fashion windows-caveats, for automation and no cmd window.

Then today I changed the method: using vbs to call the bat file, then executing rclone mount in the bat file, and then something unexpected happened, right clicking Copy and paste folders in Windows Explorer worked.

So excited, as to why these two methods have different effects, need to study the logic of windows service..

Thank you again for your support

1 Like

You're welcome. I'm happy you solved it, and thank you for sharing the solution! :+1:

I'm suprised how hard it is to find information about this strange Windows behaviour online. Compared to Linux, Windows does not have much official documentation for file explorer, file system hierarchy, copy/paste etc. It's a shame.

If you learn anything helpful in the future please feel free to share it. Good luck!