Показать сообщение отдельно
  #2  
Старый 21.03.2015, 16:36
Jaroslav285 Jaroslav285 вне форума
Прохожий
 
Регистрация: 26.03.2012
Сообщения: 10
Репутация: 10
По умолчанию

Решил вопрос путем добавления последнего символа таблицы ASCII перед именем папки, новый код прилагаю.



Код:
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; 
 




Всем спасибо за участие, тему можно закрывать.