阅读:2143回复:12
关于delphi编写filedisk应用程序----help!
openfileinformation中filename=array[0..0] of char,若文件名为e:\\temp\\file0.img,如何把此文件传入openfileinformation.filename呢?
恳请大老指点小弟!给分 被老板逼的,希望大侠同情小弟则个! :o :o :o |
|
沙发#
发布于:2004-06-06 22:10
谢谢楼上的!
POPEN_FILE_INFORMATION = ^OPEN_FILE_INFORMATION; OPEN_FILE_INFORMATION = RECORD Read_only : boolean; FileSize : int64; Filenamelength : word; filename : array[0..0] of char; end; 以上为结构定义 var pfile:pchar; volumename:='\\.\ :'; volumename[5]:='j'; device := createfile(pansichar(volumename),GENERIC_READ + GENERIC_WRITE, FILE_SHARE_READ + FILE_SHARE_WRITE , NiL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, 0); if device<>INVALID_HANDLE_VALUE then begin MessageDlg('the disk is using!', mtWarning,[mbAbort], 0); exit; end ; devicename :='\device\filedisk\filedisk0'; if DefineDosDevice(DDD_RAW_TARGET_PATH,@volumename[5],pchar(devicename)) then begin showmessage('ddddddddddddddddd'); end; device := createfile(pansichar(volumename),GENERIC_READ + GENERIC_WRITE, FILE_SHARE_READ + FILE_SHARE_WRITE , NiL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, 0); if device = INVALID_HANDLE_VALUE then begin MessageDlg('somthing is error!', mtWarning,[mbAbort], 0); exit; end ; allocmem(sizeof(OPEN_FILE_INFORMATION) + strlen('e:\temp\444.img') + 4); pfile:='\\.\e:\temp\444.img'; strcopy(openfileinformation.Filename,pfile); openfileinformation.Read_only:=false; openfileinformation.FileSize:=2*1024*1024; openfileinformation.Filenamelength:=strlen(openfileinformation.filename); IF DeviceIoControl(device,IOCTL_FILE_DISK_OPEN_FILE,@openfileinformation, sizeof(open_file_information)+openfileinformation.filenamelength-1, nil,0,bytesreturned,nil) then showmessage('fffffffffffffffff,ok'); // freemem(openFileInformation.filename[0]); closehandle(device); 在执行DeviceIoControl老是出错或不成功,请指教! |
|
板凳#
发布于:2004-06-06 22:13
怪事,少了'\'了
中间两行: allocmem(sizeof(OPEN_FILE_INFORMATION) + strlen('e:\temp\444.img') + 4); pfile:='\\.\e:\temp\444.img'; |
|
地板#
发布于:2004-06-06 22:16
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
地下室#
发布于:2004-06-07 10:43
谢谢!
delphi中该如何处理呢? |
|
5楼#
发布于:2004-06-07 16:34
delphi中数组也可越界吗?
拜托! :( :( :( |
|
6楼#
发布于:2004-06-09 15:45
定义filename array[0..0] of char好想不行吧?
应定义指针 pchar ? 能聊一下吗?QQ 50994497 |
|
7楼#
发布于:2004-06-17 09:44
多谢!
我终于完成了delphi编写filedisk应用程序! :D :D :D |
|