Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемещение папки с одного хоста на другой 
:(
    Опции темы
JSinx
Дата 12.3.2014, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 12.12.2006

Репутация: нет
Всего: 1



Нужно переместить папку с одного хоста на другой. Для этого пользовался функциями RenameFile (MoveFile), CopyFile, но ничего не работает, выдает ошибку 'отказано в доступе';
Код

   MoveFile( PChar('\\host1\111'), PChar( '\\host2\111' )


В пределах одного хоста все работает хорошо:
Код

   MoveFile( PChar('\\host1\111'), PChar( '\\host1\111' )


Кто нибудь сталкивался с таким и как вышли из ситуации?

P.S. Можно создать папку, переместить туда все файлы и подпапки пофайлово, но этот метод не очень устраивает smile

UPD: у меня даже с локального диска C на диск E не хочет переносить с такой же ошибкой :(

Это сообщение отредактировал(а) JSinx - 12.3.2014, 12:06
PM MAIL   Вверх
Poseidon
Дата 13.3.2014, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



А не смущает то, что для переноса папки используются функции переноса файла?


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
JSinx
Дата 13.3.2014, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 12.12.2006

Репутация: нет
Всего: 1



Нет, не смущает.
http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx

Цитата

MoveFile function

Moves an existing file or a directory, including its children.

PM MAIL   Вверх
Poseidon
Дата 13.3.2014, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(JSinx @  13.3.2014,  09:00 Найти цитируемый пост)
http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx

Это очень по нашему, читать либо только первую строку, либо только то, что хочется:
Цитата

The one caveat is that the MoveFile function will fail on directory moves when the destination is on a different volume.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Akella
Дата 13.3.2014, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(JSinx @  12.3.2014,  12:03 Найти цитируемый пост)
выдает ошибку 'отказано в доступе';


и что тут непонятного?
PM MAIL   Вверх
JSinx
Дата 14.3.2014, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 12.12.2006

Репутация: нет
Всего: 1



Цитата(Poseidon @  13.3.2014,  16:22 Найти цитируемый пост)
Это очень по нашему, читать либо только первую строку, либо только то, что хочется:


Я пользовался и другими функциями, в том числе CopyFile,  MoveFileEx (с атрибутом MOVEFILE_COPY_ALLOWED).  У них этого ограничения нет.

Цитата(Akella @  13.3.2014,  16:29 Найти цитируемый пост)
и что тут непонятного? 

Непонятно то, что доступ есть. Я могу спокойно переименовывать в пределах одного тома.

Как я уже уточнил, та же проблема при работе с локальными дисками, при этом права администратора.
PM MAIL   Вверх
Akella
Дата 14.3.2014, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



значит нет прав в пределах другого тома...

Добавлено через 1 минуту и 3 секунды
http://forum.vingrad.ru/index.php?showtopi...t&p=1733249

что выдаётGetLastError?
PM MAIL   Вверх
JSinx
Дата 18.3.2014, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 12.12.2006

Репутация: нет
Всего: 1



GetLastError выдает  "5: Отказано в доступе."

При этом через проводник и total commander пишется, переносится все без проблем. 
PM MAIL   Вверх
Akella
Дата 18.3.2014, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Может некорректно указываешь имена папок, хостов?
PM MAIL   Вверх
JSinx
Дата 18.3.2014, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 12.12.2006

Репутация: нет
Всего: 1



код: 

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  lfolder : string;
  lOldName, lNewName : string;
  lErr : integer;
begin
  lOldName := 'C:\111';
  lNewName := 'E:\222';

  if not CopyFile( PChar( lOldName ), PChar( lNewName ), true ) then
    ShowMessage( SysErrorMessage( GetLastError ));
end;

PM MAIL   Вверх
Akella
Дата 18.3.2014, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



111 и 222 - это точно файлы? Или это папки?

Добавлено через 1 минуту
Цитата(JSinx @  12.3.2014,  12:03 Найти цитируемый пост)
MoveFile


Нажми F1 и почитай справку. Где написано, что MoveFile переносит папку?
PM MAIL   Вверх
JSinx
Дата 18.3.2014, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 12.12.2006

Репутация: нет
Всего: 1



Про MoveFile вначале темы есть ссылка в MSDN, но уже выяснили, что она не переносит на другие тома (просто при посте раскоментил не ту строчку).

Вот код вернее:
Код

  if not MoveFileEx( PWideChar( lOldName), PWideChar( lNewName ), MOVEFILE_COPY_ALLOWED ) then
    ShowMessage( SysErrorMessage( GetLastError ));


Ссылка: http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx

И краткие вырезки
Код

Moves an existing file or directory, including its children, with various move options.

Код

lpNewFileName [in, optional]

The new name of the file or directory on the local computer.

When moving a file, the destination can be on a different file system or volume. If the destination is on another drive, you must set the MOVEFILE_COPY_ALLOWED flag in dwFlags.

Код

MOVEFILE_COPY_ALLOWED

If the file is to be moved to a different volume, the function simulates the move by using the CopyFile and DeleteFile functions.

If the file is successfully copied to a different volume and the original file is unable to be deleted, the function succeeds leaving the source file intact.

PM MAIL   Вверх
JSinx
Дата 18.3.2014, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 12.12.2006

Репутация: нет
Всего: 1



Провел эксперимент еще дома. С диска C даже файл переносить не хочет. С диска D на E файл переносит, папку не хочет. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0790 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.