您的位置:首页 > 其它

文件和目录操作函数

2007-11-22 15:42 274 查看
导读:

  1、设置驱动器的共享可以通过注册表的操作来完成。

  2、文件操作可以用系统API来实现,怎样做,自己慢慢研究,下面是我找来的文件管理API函数:

  CloseHandle 关闭一个内核对象,其中包括文件、文件映射、进程、线程、安全和同步对象等

  CompareFileTime 对比两个文件的时间

  CopyFile 复制文件

  CreateDirectory 创建一个新目录

  CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台

  CreateFileMapping 创建一个新的文件映射对象

  DeleteFile 删除指定文件

  DeviceIoControl 对设备执行指定的操作

  DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值

  FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值

  FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间

  FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构

  FindClose 关闭由FindFirstFile函数创建的一个搜索句柄

  FindFirstFile 根据文件名查找文件

  FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件

  FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区

  FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘

  GetBinaryType 判断文件是否可以执行

  GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数

  GetCurrentDirectory 在一个缓冲区中装载当前目录

  GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量

  GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息

  GetDriveType 判断一个磁盘驱动器的类型

  GetExpandedName 取得一个压缩文件的全名

  GetFileAttributes 判断指定文件的属性

  GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制

  GetFileSize 判断文件长度

  GetFileTime 取得指定文件的时间信息

  GetFileType 在给出文件句柄的前提下,判断文件类型

  GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息

  GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区

  GetFullPathName 获取指定文件的完整路径名

  GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母

  GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径

  GetOverlappedResult 判断一个重叠操作当前的状态

  GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值

  GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表

  GetPrivateProfileString 为初始化文件中指定的条目取得字串

  GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值

  GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表

  GetProfileString 为win.ini初始化文件中指定的条目取得字串

  GetShortPathName 获取指定文件的短路径名

  GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名

  GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用

  GetTempPath 获取为临时文件指定的路径

  GetVolumeInformation 获取与一个磁盘卷有关的信息

  GetWindowsDirectory 获取Windows目录的完整路径名

  hread 参考lread

  hwrite 参考lwrite函数

  lclose 关闭指定的文件

  lcreat 创建一个文件

  llseek 设置文件中进行读写的当前位置

  LockFile 锁定文件的某一部分,使其不与其他应用程序共享

  LockFileEx 与LockFile相似,只是它提供了更多的功能

  lopen 以二进制模式打开指定的文件

  lread 将文件中的数据读入内存缓冲区

  lwrite 将数据从内存缓冲区写入一个文件

  LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件

  LZCopy 复制一个文件

  LZInit 这个函数用于初始化内部缓冲区

  LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件

  LZRead 将数据从文件读入内存缓冲区

  LZSeek 设置一个文件中进行读写的当前位置

  MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间

  MoveFile 移动文件

  OpenFile 这个函数能执行大量不同的文件操作

  OpenFileMapping 打开一个现成的文件映射对象

  QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况

  ReadFile 从文件中读出数据

  ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调

  RegCloseKey 关闭系统注册表中的一个项(或键)

  RegConnectRegistry 访问远程系统的部分注册表

  RegCreateKey 在指定的项下创建或打开一个项

  RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数

  RegDeleteKey 删除现有项下方一个指定的子项

  RegDeleteValue 删除指定项下方的一个值

  RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx

  RegEnumKeyEx 枚举指定项下方的子项

  RegEnumValue 枚举指定项的值

  RegFlushKey 将对项和它的子项作出的改动实际写入磁盘

  RegGetKeySecurity 获取与一个注册表项有关的安全信息

  RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息

  RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制

  RegOpenKey 打开一个现有的注册表项

  RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数

  RegQueryInfoKey 获取与一个项有关的信息

  RegQueryValue 取得指定项或子项的默认(未命名)值

  RegQueryValueEx 获取一个项的设置值

  RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息

  RegRestoreKey 从一个磁盘文件恢复注册表信息

  RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件

  RegSetKeySecurity 设置指定项的安全特性

  RegSetValue 设置指定项或子项的默认值

  RegSetValueEx 设置指定项的值

  RegUnLoadKey 卸载指定的项以及它的所有子项

  RemoveDirectory 删除指定目录

  SearchPath 查找指定文件

  SetCurrentDirectory 设置当前目录

  SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾

  SetFileAttributes 设置文件属性

  SetFilePointer 在一个文件中设置当前的读写位置

  SetFileTime 设置文件的创建、访问及上次修改时间

  SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果

  SetVolumeLabel 设置一个磁盘的卷标(Label)

  SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构

  UnlockFile 解除对一个文件的锁定

  UnlockFileEx 解除对一个文件的锁定

  UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射

  VerFindFile 用这个函数决定一个文件应安装到哪里

  VerInstallFile 用这个函数安装一个文件

  VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称

  VerQueryValue 这个函数用于从版本资源中获取信息

  WriteFile 将数据写入一个文件

  WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调

  WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值

  WritePrivateProfileString 在初始化文件指定小节内设置一个字串

  WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值

  WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串

  要删除一个文件:

  AnsiString findpath;//文件的全路径;

  DeleteFile(findpath);

  要删除一个文件夹:

  AnsiString folder;//文件夹的全路径;

  RemoveDirectory(folder);

  要复制文件:

  if(!FileExists("C://C.txt"))

  {

  CopyFile("F://C.txt","C://C.txt" ,FALSE);

  }

  就可以把F盘中的C.txt复制到C盘。

  剪切操作就是先把文件复制到目标路径,然后再作删除~~ ,不过RemoveDirectory只能够删除一个空目录,如果一个文件夹中还含有其它文件或文件夹话,用它是不可以作删除的!

  我想的办法是先查找要删除的文件夹,找到文件的就作删除!

  代码:

  void TForm1:

  


  elFile(AnsiString path)

  {

  TSearchRec sr;

  bool have=fasle;//设置一个判断文件夹中是否有目录的状态变量

  AnsiString dir;

  dir=path+"*.*";

  if(FindFirst(dir,faDirectory,sr)==0)

  {

  do{

  if((sr.Attr&faDirectory)!=0)

  {

  if(sr.Name!="."&&sr.Name!="..")

  {

  DelFile(path+sr.Name+"//");//是文件夹的就递归

  have=true;

  }

  }else{

  DeleteFile(path+sr.Name);//是文件的就把它删除

  }

  } while(FindNext(sr)==0);

  FindClose(sr);

  }

  if(!have)

  {

  RemoveDirectory(path.c_str());//如果是空的目录就删除

  }

  }

  上面的方法很笨,不知那位大虾有很好的方法,请不惜赐教!

  其它的操作类拟~~例如要删除E:/C++ Builder

  用下面的方法调用:

  DelFile("E://C++ Builder//");

本文转自

http://soa.5d6d.com/redirect.php?fid=11&tid=48&goto=nextnewset
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: