用 Dir 函数即可以找到隐藏文件。 
 

解决方案 »

  1.   


    1、可以用 DeleteFile 删除 
    CopyFile 拷贝 
    覆盖得先用DeleteFile 删除隐藏文件,在copy
      

  2.   

    2、读写二进制文件的api函数为CreateFile、 ReadFile、WriteFile、CloseHandleCreateFile VB声明 
    Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long 
    说明 
    这是一个全功能的例程,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台 
    返回值 
    Long,如执行成功,则返回文件句柄。INVALID_HANDLE_VALUE表示出错,会设置GetLastError。即使函数成功,但若文件存在,且指定了CREATE_ALWAYS 或 OPEN_ALWAYS,GetLastError也会设为ERROR_ALREADY_EXISTS 
    参数表 
    参数 类型及说明 
    lpFileName String,要打开的文件的名字 
    dwDesiredAccess Long,如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息 
    dwShareMode Long,零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问 
    lpSecurityAttributes SECURITY_ATTRIBUTES,指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性(如果操作系统支持的话) 
    dwCreationDisposition Long,下述常数之一: 
    CREATE_NEW 创建文件;如文件存在则会出错 
    CREATE_ALWAYS 创建文件,会改写前一个文件 
    OPEN_EXISTING 文件必须已经存在。由设备提出要求 
    OPEN_ALWAYS 如文件不存在则创建它 
    TRUNCATE_EXISTING 讲现有文件缩短为零长度 
    dwFlagsAndAttributes Long,一个或多个下述常数 
    FILE_ATTRIBUTE_ARCHIVE 标记归档属性 
    FILE_ATTRIBUTE_COMPRESSED 将文件标记为已压缩,或者标记为文件在目录中的默认压缩方式 
    FILE_ATTRIBUTE_NORMAL 默认属性 
    FILE_ATTRIBUTE_HIDDEN 隐藏文件或目录 
    FILE_ATTRIBUTE_READONLY 文件为只读 
    FILE_ATTRIBUTE_SYSTEM 文件为系统文件 
    FILE_FLAG_WRITE_THROUGH 操作系统不得推迟对文件的写操作 
    FILE_FLAG_OVERLAPPED 允许对文件进行重叠操作 
    FILE_FLAG_NO_BUFFERING 禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块 
    FILE_FLAG_RANDOM_ACCESS 针对随机访问对文件缓冲进行优化 
    FILE_FLAG_SEQUENTIAL_SCAN 针对连续访问对文件缓冲进行优化 
    FILE_FLAG_DELETE_ON_CLOSE 关闭了上一次打开的句柄后,将文件删除。特别适合临时文件 
    也可在Windows NT下组合使用下述常数标记: 
    SECURITY_ANONYMOUS, SECURITY_IDENTIFICATION, SECURITY_IMPERSONATION, SECURITY_DELEGATION, SECURITY_CONTEXT_TRACKING, SECURITY_EFFECTIVE_ONLY 
    hTemplateFile Long,如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性 
    注解 
    打开一个通信端口时(如COM1),无论如何都要设置成 OPEN_EXISTING
    这个函数代替了lOpen 和 lCreate函数,应该是我们的首选 
    ReadFile VB声明 
    Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long 
    说明 
    从文件中读出数据。与lread函数相比,这个函数要明显灵活的多。该函数能够操作通信设备、管道、套接字以及邮槽 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError。如启动的是一次异步读操作,则函数会返回零值,并将ERROR_IO_PENDING设置成GetLastError的结果。如结果不是零值,但读入的字节数小于nNumberOfBytesToRead参数指定的值,表明早已抵达了文件的结尾 
    参数表 
    参数 类型及说明 
    hFile Long,文件的句柄 
    lpBuffer Any,用于保存读入数据的一个缓冲区 
    nNumberOfBytesToRead Long,要读入的字符数 
    lpNumberOfBytesRead Long,从文件中实际读入的字符数 
    lpOverlapped OVERLAPPED,如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal As Long,并传递零值) WriteFile VB声明 
    Declare Function WriteFile Lib "kernel32" Alias "WriteFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long 
    说明 
    将数据写入一个文件。该函数比lwrite函数要灵活的多。也可将这个函数应用于对通信设备、管道、套接字以及邮槽的处理 
    返回值 
    Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hFile Long,一个文件的句柄 
    lpBuffer Any,要写入的一个数据缓冲区 
    nNumberOfBytesToWrite Long,要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的“上一次修改时间”。针对位于远程系统的命名管道,限制在65535个字节以内 
    lpNumberOfBytesWritten Long,实际写入文件的字节数量 
    lpOverlapped OVERLAPPED,倘若在指定FILE_FLAG_OVERLAPPED的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为ByVal As Long,并传递零值)