Я пытаюсь отправить некоторые данные с подключенного диска в пункт назначения, я делаю это с помощью системной команды
Мой код
wstring cmd1 = L"\"C:\\Program Files\\cwRsync\\bin\\rsync.exe\" -cvriHPDkREL --no-implied-dirs --stats /cygdrive/Z/32Bit /cygdrive/C/";
wstring syscmd = L"\"";
syscmd.append(cmd1);
syscmd.append(L"\"");
_wsystem(syscmd.c_str());
Вывод, который я получаю на консоли
sending incremental file list
rsync: link_stat "/cygdrive/Z/32Bit" failed: No such file or directory (2)
Number of files: 0
Number of files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 3
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 12
Total bytes received: 12
sent 12 bytes received 12 bytes 48.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
НОТА : когда я копирую ту же команду и запускаю ее в командной строке, все работает отлично. Я не могу понять, что не так. есть идеи?
Диски Cygwin (например, /cygdrive/Z
) доступны только для приложений, которые ссылаются на библиотеки cygwin.
Вы, кажется, используете Windows-родной rsync
это не связано с библиотеками cygwin и поэтому не понимает cygdrives. использование rsync
из дистрибутива Cygwin, т.е. C:\cygwin\bin\rsync.exe
,
Кроме того, сначала конвертировать пути Cygwin (например, /cygdrive/Z
) в Windows родные пути с cygpath
полезность и вместо этого используйте пути Windows.
Других решений пока нет …