Как копировать/переместить файл вне директории терминала?

Sheer  

Использовал CopyFileW из kernel32.dll но копировать так и не получилось. 

Пробовал на mql4.

#import "kernel32.dll"

bool CopyFileW(string lpExistingFileName, string lpNewFileName, bool failIfExists);

#import

CopyFileW("C:\Users\User1\AppData\Roaming\MetaQuotes\Terminal\90271F5A6EF646EE3A8805FDEE834716\tester\files\text.txt","D:\Alp",0);


Sergey Eremin  
Sheer:

Использовал CopyFileW из kernel32.dll но копировать так и не получилось. 

Пробовал на mql4.

#import "kernel32.dll"

bool CopyFileW(string lpExistingFileName, string lpNewFileName, bool failIfExists);

#import

CopyFileW("C:\Users\User1\AppData\Roaming\MetaQuotes\Terminal\90271F5A6EF646EE3A8805FDEE834716\tester\files\text.txt","D:\Alp",0);


Попробуйте так (не проверил, но бросилось в глаза):

...
CopyFileW("C:\\Users\\User1\\AppData\\Roaming\\MetaQuotes\\Terminal\\90271F5A6EF646EE3A8805FDEE834716\\tester\\files\\text.txt","D:\\Alp",0);
...
Sheer  
Sergey Eremin:

Попробуйте так (не проверил, но бросилось в глаза):

Спасибо , и так пробовал, но так тоже не работает.
TheXpert  
Sheer:
Спасибо , и так пробовал, но так тоже не работает.
Вроде выглядит правильно. Почитайте про rtlgetlastwin32error и посмотрите какую ошибку функция возвращает
Sheer  
Комбинатор:
Вроде выглядит правильно. Почитайте про rtlgetlastwin32error и посмотрите какую ошибку функция возвращает

Я немного по другому смотрел значение ошибки Print("CopyFileW error#",kernel32::GetLastError()," mql5 error#",::GetLastError());

И возвращало либо 3, либо 123 (именно от кернел32), в зависимости от варианта указания пути...

Не могу найти, где посмотреть описание ошибок? 

Koldun Zloy  
Для того чтобы писать в корень диска нужны права администратора.
Sergey Eremin  
Sheer:

Я немного по другому смотрел значение ошибки Print("CopyFileW error#",kernel32::GetLastError()," mql5 error#",::GetLastError());

И возвращало либо 3, либо 123 (именно от кернел32), в зависимости от варианта указания пути...

Не могу найти, где посмотреть описание ошибок? 

3:

ERROR_PATH_NOT_FOUND

3 (0x3)

The system cannot find the path specified.

123:

ERROR_INVALID_NAME

123 (0x7B)

The filename, directory name, or volume label syntax is incorrect.

Источник: https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx

Алгоритм поиска: в гугле вбиваем название функции (CopyFileW), находим её описание. В описании будет упоминание GetLastError(), идём в описание GetLastError() и там находим ссылки на коды ошибок :)

System Error Codes (0-499) (Windows)
  • msdn.microsoft.com
The information on this page is intended to be used by programmers so that the software they write can better deal with errors. If you are an end-user that is experiencing difficulty with an application you are installing or running, contact customer support for the software that is displaying the error message. To obtain support for a...
Sheer  
Sergey Eremin:

3:

123:

Источник: https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx

Алгоритм поиска: в гугле вбиваем название функции (CopyFileW), находим её описание. В описании будет упоминание GetLastError(), идём в описание GetLastError() и там находим ссылки на коды ошибок :)

Спасибо, но теперь выдает ошибку 5, Access is denied.

Запускал терминал от админа, не помогло, что еще можно попробовать?

Sergey Eremin  
Sheer:

Спасибо, но теперь выдает ошибку 5, Access is denied.

Запускал терминал от админа, не помогло, что еще можно попробовать?

Хмм, даже не знаю, что ещё посоветовать. Явно ошибка в отсутствии прав доступа.

Может рассмотреть вариант копирования файлов куда-нибудь, куда будут права доступа? Например, в  "C:\\Users\\User1\\AppData\\Roaming\\Alp". Или, может, открыть доступ к D:\\Alp (в свойствах папки, хотя не уверен в успехе такой затеи).

Ну или понизить уровень UAC, хотя это дурная идея (если непонятно о чём речь, то гугл -> "понизить уровень UAC").

Renat Akhtyamov  
Sheer:

Спасибо, но теперь выдает ошибку 5, Access is denied.

Запускал терминал от админа, не помогло, что еще можно попробовать?

Админ тут не причем. Дайте необходимые права на нужную паку для "User1".
Ramiz Mavludov  
new-rena:
Админ тут не причем. Дайте необходимые права на нужную паку для "User1".
Если не получится дать полные права, то нужно будет сначала владельца сменить и указать своё имя пользователя и уже потом разрешить самому себе делать что угодно с этой папкой) 
Причина обращения: