WIN32汇编语言教程:第10章 内存管理和文件操作 · 10.2 文件操作(10)
与MoveFile函数对应,系统中也有一个MoveFileEx函数,不过不要受CopyFileEx函数的影响而认为MoveFileEx函数只是提供了一个回调函数,事实上完全不是这回事,MoveFileEx函数是MoveFile函数的扩展。它的使用方法是:
invoke MoveFileEx,lpExistingFileName,lpNewFileName,dwFlags
MoveFileEx函数增加了一个dwFlags参数来进行移动控制,参数可以是下面取值的组合:
● MOVEFILE_COPY_ALLOWED —— 允许拷贝数据,如果不指定这个标志,则移动文件的时候不能将文件移动到不同的驱动器上(当然即使指定了这个标志,将目录移动到不同驱动器上也是不支持的),本标志不能和MOVEFILE_DELAY_UNTIL_REBOOT标志合并使用。
● MOVEFILE_DELAY_UNTIL_REBOOT —— 在Windows NT中执行时,函数并不马上进行移动操作,而是等下一次系统启动的时候再进行移动操作。
● MOVEFILE_REPLACE_EXISTING —— 如果目标文件已经存在的话则将它替换掉,相比之下,MoveFile函数无法替换已存在的目标文件。
MoveFileEx函数还有个特殊用途:当标志指定MOVEFILE_DELAY_UNTIL_REBOOT的时候,lpNewFileName参数可以指定为NULL,在这种情况下,当下一次启动的时候,系统会删除lpExistingFileName指定的文件。MOVEFILE_DELAY_UNTIL_REBOOT标志在Windows 95下不予支持。
3. 删除文件
删除文件使用DeleteFile函数,函数的语法很简单:
invoke DeleteFile,lpFileName
lpFileName指向一个包含要删除文件名的字符串。当函数在Windows 95下执行的时候,即使文件处在打开状态也可以成功删除,而在Windows NT下执行的时候,不能对一个已打开的文件进行删除,必须首先用CloseHandle函数关闭文件后才能执行成功。
上页:第10章 内存管理和文件操作 · 10.2 文件操作(9) 下页:第10章 内存管理和文件操作 · 10.3 驱动器和目录(1)