Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.03.2015, 13:29
Jaroslav285 Jaroslav285 вне форума
Прохожий
 
Регистрация: 26.03.2012
Сообщения: 10
Репутация: 10
По умолчанию SHFileOpStruct не перемещает папки на флешке в NTFS

Здравствуйте, столкнулся со следующей проблемой, программа должна перемещать файлы папки на флешке в папку Backup.
Когда флешка в файловой системе FAT32 все работает правильно, а если флешка в файловой системе NTFS, то файлы перемещаются без проблем, а папки названия которых в кириллице или в верхнем регистре английской раскладки не перемещаются никак, перечитал много статей на тему shfileopstruct, но по своей проблеме вразумительного ответа так и не нашел, поэтому прошу Вас помочь разобраться в данной проблеме, свой код добавляю ниже.

Код:
procedure TForm1.WMDeviceChange(var Msg: TMessage); 
var pDBT:P_DEV_BROADCAST_HDR; 
  FileOp: TSHFileOpStruct; 
  
   vVolumeName, vFileSystemName: array [0..MAX_PATH-1] of Char; 
  vVolumeSerialNo, vMaxLength, vFileSystemFlags: LongWord; 
             const 
begin 
  
case Msg.WParam of 
        $8000: 
         begin 
         Memo1.Lines.Clear; 
            for s:= 'D' to 'J' do begin 
      if (GetDriveType(PChar(s+':\'))  = DRIVE_REMOVABLE) 
        then begin memo1.Lines.Add(s+':\');  //Получение списка вставленных флешек при подключении USB-Flash 
  
        pDBT := Pointer(Msg.LParam); 
        if pDBT<>nil then 
        if (pDBT^.dbch_devicetype=$00000002) then begin //проверка на тип устройства если флешка то 
  
  
       try 
  
if  not DirectoryExists(s+':'+'\Backup')  then      begin    // Сама структура с которой проблемы 
  
  ZeroMemory(@FileOp, SizeOf(TSHFileOpStruct)); 
  FileOp.Wnd:=Handle; 
  FileOp.wFunc:=FO_MOVE;// FO_MOVE FO_COPY FO_DELETE FO_RENAME 
FileOp.pFrom:=PChar(s+':\'+'*.*'+#0)   ; 
FileOp.pTo:=PChar(s+':\'+'Backup'+#0); 
FileOp.fFlags:=0+FOF_NOCONFIRMMKDIR; 
FileOp.fFlags:=FOF_NOERRORUI or FOF_NOCONFIRMATION or fof_silent; 
FileOp.hNameMappings :=0; 
SHFileOperationW(FileOp); 
 end ;  except 
  
       end; 
        end; 
        end; 
        end; 
        end; 
        $8004: 
        end; 
end;

Жду Ваших ответов, буду рад любой помощи, заранее спасибо.
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:25.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025