U盘里有个叫root directory的文件  平常看不见  要用winhex才能看见
我想要往里面写数据,请问要怎么写啊?? 
另外  怎么用delphi格式化U盘  要不弹出Windows磁盘格式化对话窗的  格式化成fat16格式
谢谢

解决方案 »

  1.   

    root directory是保存U盘卷标的地方,平常看不到的
      

  2.   

    格式化const 
      SHFMT_DRV_A = 0; 
      SHFMT_DRV_B = 1; 
      SHFMT_ID_DEFAULT = $FFFF; 
      SHFMT_OPT_QUICKFORMAT = 0; 
      SHFMT_OPT_FULLFORMAT = 1; 
      SHFMT_OPT_SYSONLY = 2; 
      SHFMT_ERROR = -1; 
      SHFMT_CANCEL = -2; 
      SHFMT_NOFORMAT = -3; function SHFormatDrive(hWnd: HWND; 
      Drive: Word; 
      fmtID: Word; 
      Options: Word): Longint 
      stdcall; external 'Shell32.dll' Name 'SHFormatDrive'; procedure TForm1.Button1Click(Sender: TObject); 
    var 
      FmtRes: Longint; 
    begin 
      try 
        FmtRes := ShFormatDrive(Handle, 
          SHFMT_DRV_A, 
          SHFMT_ID_DEFAULT, 
          SHFMT_OPT_QUICKFORMAT); 
        case FmtRes of 
          SHFMT_ERROR: ShowMessage('Error formatting the drive'); 
          SHFMT_CANCEL: ShowMessage('User canceled formatting the drive'); 
          SHFMT_NOFORMAT: ShowMessage('No Format') 
            else 
              ShowMessage('Disk has been formatted!'); 
        end; 
      except 
        ShowMessage('Error Occured!'); 
      end; 
    end; 
      

  3.   

    至于“看不見”的文件root directory,可以直接打開嗎?格式怎樣?
      

  4.   

    格式化的我想要 不弹出Windows磁盘格式化对话窗的直接格式化的
    root directory我使用winhex打开的  里面保存了U盘的卷标的信息  其他有什么用我也不知道
      

  5.   

    那样你也可以调用cmd  format命令
    root directory应该可以通过读取字节实现,看看winhex存储的偏移是多少
      

  6.   

    楼上你说的我不太懂 我是菜鸟  详细解释下好吗?
    winhex网上有下载的   你可以下载一个看看 U盘里都有root directory
    谢谢了!
      

  7.   

    “叫root directory的文件”不是文件,是“根目录”,你打开磁盘看到的文件和文件夹都位于这个“根目录”下面。“根目录”是格式化时建立的,用“\”表示,例如C盘根目录就是“C:\”。格式化用fmifs.dll中的FormatEx函数,你可以在网上搜索一下。
      

  8.   

    cnzdgs那个人的胸章好多啊,是不是表示你是高手?
      

  9.   

    用API查找逻辑盘的类型,找到可移动设备,然后写数据