如何移动当前正在使用的文件

Bat 之 移动当前目录 所有文件夹下的指定文件 标题有点拗口,主要是 希望能够尽可能被有需要人 用到。网上很多这方面的例子,尤其是很多大牛都将Bat 讲得很清楚很仔细。我这里就不再多说。场景: 过年相机里照了很多相片,当时选择了以日期为标注去命名图片和视频,然后拷贝到电脑后,           发现晕菜,它新建的目录是每天作为一个文件夹,然后文件夹里面放当天的照片和视频。           这样看起来,累死了,点击进去,看完,又得点击出来需... 阅读详情

http://support.microsoft.com/kb/140570/zh-cn

概要

有时,Win32 应用程序需要删除、重命名或移动系统当前正在使用的文件。一个常见的例子就是安装程序在完成软件包的安装后,需要从用户硬盘中将它自身删除。有时,这些应用程序还需要移动系统当前正在使用的设备驱动程序。它们需要操作系统的帮助才能删除或移动这些文件。 

Windows 95 和 Windows NT 分别提供了一种独特的方法,来帮助应用程序删除、替换或重命名正在使用的文件和目录。尽管这两个平台实现这些方法的方式有所不同,但它们具有一个共同的整体策略,即由应用程序指定要处理的文件,然后系统在重新启动时对这些文件进行处理。本文阐述应用程序如何使用各个 Windows 平台提供的方法。

更多信息

在 Windows NT 中移动文件

在 Windows NT 上运行的基于 Win32 的应用程序应结合使用 MoveFileEx() 和 MOVEFILE_DELAY_UNTIL_REBOOT 标志来移动、替换或删除当前正在使用的文件和目录。在系统下次重新启动时,Windows NT 启动程序就会移动、替换或删除指定的文件和目录。 

要移动或替换正在使用的文件或目录,应用程序必须同时指定位于同一卷(例如,驱动器 C:)上的源路径和目标路径。如果目标路径是现有文件,它将被覆盖。如果目标路径是现有目录,它不会被覆盖并且源路径和目标路径都将保持不变。下面是一个移动或替换文件或移动目录的调用示例:
   // Move szSrcFile to szDstFile next time system is rebooted
   MoveFileEx(szSrcFile, szDstFile, MOVEFILE_DELAY_UNTIL_REBOOT);
				
要删除文件或目录,应用程序必须将目标路径设置为 NULL。如果源路径是一个目录,则只有在它为空时才能将它删除。请注意,如果您必须使用 MoveFileEx() 将文件从某个目录中删除,则必须重新启动计算机,然后才能调用 MoveFileEx() 来删除该目录。下面是一个如何删除文件或清空目录的示例:
   // Delete szSrcFile next time system is rebooted
   MoveFileEx(szSrcFile, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
				

在 Windows 95 中移动文件

Windows 95 没有实现 MoveFileEx(),但是它为所有基于 Win32、基于 16 位 Windows 和基于 MS-DOS 的应用程序提供了另一种移动、替换或删除当前正在使用的文件(但不是目录)的方法。此功能是通过名为 Wininit.ini 的文件的 [rename] 节实现的。如果 Windows 目录中存在 Wininit.ini 文件,Wininit.exe 会在系统启动时处理该文件。处理完 Wininit.ini 后,Wininit.exe 会将其重命名为 Wininit.bak。 

[rename] 节的语法如下:
   DestinationFileName=SourceFileName
				
DestinationFileName 和 SourceFileName 必须位于同一卷上并且必须是短 (8.3) 文件名,因为 Wininit.ini 在保护模式的磁盘系统加载之前被处理,而长文件名只有在保护模式的磁盘系统正在运行时才可用。在 Wininit.ini 中使用长文件名指定的目标和源文件会被忽略。 

[rename] 节可以包含多行,每行一个文件。要删除文件,请将 DestinationFileName 指定为 NUL。下面是一些项的示例:
   [rename]
   NUL=C:/TEMP.TXT
   C:/NEW_DIR/EXISTING.TXT=C:/EXISTING.TXT
   C:/NEW_DIR/NEWNAME.TXT=C:/OLDNAME.TXT
   C:/EXISTING.TXT=C:/TEMP/NEWFILE.TXT
				
第一行删除 Temp.txt。第二行将 Existing.txt 移动到一个新目录。第三行移动并重命名 Oldname.txt。第四行用 Newfile.txt 覆盖现有文件。 

应用程序不能使用 WritePrivateProfileString() 将项写入 [rename] 节,因为可能有多个具有相同 DestinationFileName 的行,当 DestinationFileName 为“NUL”时尤其如此。相反,应通过分析 Wininit.ini 并将各个项追加到 [rename] 节的末尾来添加项。 

注意:请始终使用不区分大小写的搜索来分析 Wininit.ini,因为 [rename] 节的标题和其中的文件名可能包含大小写字母的任意组合。 

使用 Wininit.ini 的应用程序应检查 Windows 目录中是否存在该文件。如果存在 Wininit.ini,则自系统上次重新启动以来,其他应用程序已向该文件写入了数据。因此,该应用程序应打开该文件并向 [rename] 节中添加项。如果不存在 Wininit.ini,则该应用程序应创建该文件并向 [rename] 节中添加项。这样做可确保您的应用程序不会无意中删除其他应用程序写入的项。 

要在系统重新启动之前撤消文件重命名操作,必须从 Wininit.ini 文件的 [rename] 节中删除相应的行。

Delphi moveFileEx文件移动示例.rar Delphi移动文件,其实就是模拟了剪切文件再粘贴文件的效果,比较简单的例子,核心的代码也没几行:   begin moveFileEx(pchar(OpenDialog1.FileName),pchar('C:\' extractfilename(opendialog1.FileName)),MOVEFILE_COPY_ALLOWED);    showmessage('文件已移动到C盘跟目录下');   end   else    showmessage('无法复制文件');   end;   需要更完整的代码,请下载本Delphi文件移动源码包。 立即下载

相关推荐

文件复制、强制替换工具(正在使用的程序也可替换)

文件复制、强制替换工具(正在使用的程序也可替换)

删除或重命名正在打开的文件

删除或重命名正在打开的文件Windows NT中有一个函数MoveFileEx,若使用MOVEFILE_DELAY_UNTIL_REBOOT 标记,它可以在重启过程中删除文件。但是,Windows 9x 并不支持这个标记。怎么办呢?每次当你重启,windows会在Windows目录下寻找文件WININIT.INI。这个文件包含删除/复制/重命名文件的命令,它可以在任何东西(实际上是决大部分

UNYYWS的专栏 1012

STM32实现webserver显示数据及配置参数

其实提到的将fsdata.c重命名为fsdata_custom.c,可以不重命令,将/LWIP/Target/lwipopts.h中HTTPD_USE_CUSTOM_FSDATA 定义为0,这样HTTPD_FSDATA_FILE将使用fsdata.c,避免每次生成fsdata.c需要重命令的麻烦。2、登录成功后,板卡根据板卡配置类型,返回对应的数据页面,该页面可实现数据校准、清零,以及进行到板卡参数设置页面。目前还未实现post功能以及http身份验证功能。3、板卡参数设置页面。

2691

程序文件升级自动更新时,替换正在运行中的文件的分析

在进行程序文件升级自动更新时,总会有些文件在被使用中,这时如何进行替换: [转载]替换正在运行中的文件的分析 作者:Dancefirefrom:xfocus 一、引入 凡事总喜欢刨根问底,一直问自己为什么,问到实在没什么可问了为止,当然也有问到自己是在懒得再问了为止的时候。因为一个软件的自动更新老出问题,有时候出现无法自动更新,分析后发现原来是在替换正在运行的程序时出了问题。无知的我就开...

weixin_30832143的博客 1232

计算pi小数点后10000位

数据结构课上,老师让我们计算一下pi的10000位,复习一下面向对象。 First Try:定义一个高精度类hp(high precision),实现加减乘除,输入输出,然后随便找一个公式,比如Wallis公式,全都用hp进行计算。 现实是:大数乘大数或者大数除大数,实在是太慢了。而且Wallis公式收敛太慢。 Second Try先找到一个收敛较快的公司:BBP公式,观察公式发现,...

我的技术人生 7394

ANSYS APDL齿轮建模实战:从渐开线方程到完整3D模型的保姆级教程

本文详细介绍了使用ANSYS APDL进行齿轮建模的全过程,从渐开线方程的数学基础到完整3D模型的创建。通过参数化命令流实现高精度齿轮建模,特别适合机械设计和仿真分析需求。教程包含关键参数计算、APDL环境配置、单齿齿廓建模以及全齿轮阵列复制等实用技巧,帮助工程师快速掌握ANSYS APDL在齿轮建模中的应用。

lg888的博客 445

Windows C++:MoveFile、MoveFileEx、MoveFileWithProgress、CopyFile、CopyFileEx。

文件管理是一个至关重要的领域,涉及文件的创建、移动、复制和删除等操作。MoveFileMoveFileExCopyFile和CopyFileEx,这些函数在实现高效的文件操作时,提供了丰富的功能和灵活性。MoveFile是最基本的文件移动函数,允许开发者轻松地将文件或目录移动到指定位置或重命名。尽管功能简单,但它的有效性在于易用性,适合进行快速的文件操作。然而,它的局限性在于无法处理已存在的目标文件,这为更复杂的应用场景带来了挑战。为了解决这个问题,MoveFileEx。

Bobowen的博客 2226

从OFED到rdma-core:手把手带你搞定Linux下RDMA开发环境的选型与搭建

本文详细介绍了在Linux系统下搭建RDMA开发环境的完整流程,涵盖OFED与rdma-core的选型对比及分步安装指南。针对高性能计算和分布式存储需求,解析RDMA技术栈的核心组件,提供环境验证与性能测试方法,帮助开发者快速构建稳定高效的开发环境。特别适合需要优化网络性能的工程师参考。

weixin_26905487的博客 225

API函数MoveFileEx使用详解

{ 函数原型 }BOOL MoveFileEx(  lpExistingFileName: PChar;  // 来源文件名,指向一个以零结尾的字符串的指针。  lpNewFileName: PChar;       // 目标文件名,指向一个以零结尾的字符串的指针。  dwFlags: DWORD              // 移动标记,见定义  ): BOOL; stdcall;

Augusdi的专栏 1万+

文华指标源码—区间彩带

这就是当年东方财富软件终端里主打经典的指标、主要揭示主力成本区域。

qq2054129753的博客 886

YOLOv13优化:PoolingFormerCGLU模块 MetaFormer 框架 + 池化混合器 手把手教你自注意力

PoolingFormer1 是一个基于 MetaFormer 框架 的轻量化卷积-Transformer 混合模块,通过 Pooling 取代自注意力,实现: 更低的计算成本 一定的全局信息融合 兼容 CNN 和 Transformer 的优点

FJN110的博客 425

如何移动、替换和删除当前正在使用的文件

概要有时,Win32 应用程序需要删除、重命名或移动系统当前正在使用的文件。一个常见的例子就是安装程序在完成软件包的安装后,需要从用户硬盘中将它自身删除。有时,这些应用程序还需要移动系统当前正在使用的设备驱动程序。它们需要操作系统的帮助才能删除或移动这些文件。 Windows 95 和 Windows NT 分别提供了一种独特的方法,来帮助应用程序删除、替换或重命名正在使用的文件和目录。尽管这

Wendysuly的专栏 1374

推荐系统(十六):基于ESMM的商品召回/推荐系统

ESMM(Entire Space Multi-Task Model)是阿里巴巴提出的多任务学习框架,通过联合建模点击率(CTR)和点击转化率(CVR)解决传统CVR模型样本稀疏问题。其核心思想是将 CVR 定义为 CTR 与 CTCVR 的条件概率,模型包含两个子任务。

Jin_Kwok的博客 1265

【转】如何移动、替换和删除当前正在使用的文件

文章来源:http://support.microsoft.com/kb/q140570/概要 有时,Win32 应用程序需要删除、重命名或移动系统当前正在使用的文件。一个常见的例子就是安装程序在完成软件包的安装后,需要从用户硬盘中将它自身删除。有时,这些应用程序还需要移动系统当前正在使用的设备驱动程序。它们需要操作系统的帮助才能删除或移动这些文件。 Windows 95 和 Windo

1417

车载以太网网络测试-27【SOME/IP-SD简述】

SOME/IP-SD协议是基于IP的可扩展面向服务中间件中的服务发现协议,是汽车电子和嵌入式系统中实现动态服务发现与通信的核心组件。该协议规范详细说明了协议SOME/IP服务发现(SOME/IP-SD)的格式、消息序列和语义。本文将对SOME/IP-SD协议进行详细介绍。

车载网络测试工程师的博客 1953

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Anaconda从C盘移到D盘(一种不耽误当前env使用的方法,如果不着急把所有的包一次性移到位)

文章摘要:本文介绍了一种渐进式的Anaconda迁移方法,建议先将不常用的环境从C盘移至D盘新建的文件夹,待当前研究完成后再迁移正在使用的环境。作者强调创建新环境时应直接在D盘建立,实现分批迁移策略。该方法避免了一次性迁移可能造成的工作中断,适合需要持续使用的开发环境迁移场景。

周志超的博客 1155

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

如何解决移动硬盘弹出时报错:设备正在使用中

如何解决移动硬盘弹出时报错:设备正在使用中 一、弹出usb attached scsl大容量储存设备时出问题 在使用Windows10系统的时候,我们在弹出U盘或者移动硬盘时,有时会出现“弹出USB大容量存储设备时出问题”的提示,如果直接拔出回损伤U盘/移动硬盘,出现这个问题该怎么样解决呢?下面与大家一起来看看操作的方法吧。 解决办法: 查看出错的进程ID: 1、我们先来看一下,在弹出U盘的时候,弹出窗口提示:弹出USB大容量存储设备时出问题 2、这时我们右键点击屏幕上的“此电脑”图标,在弹出菜单中选择“

lucky20919的博客 8万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

“此设备当前正在使用”怎么快速解决?

遇到“此设备当前正在使用”问题怎么办?看看这9个解决方法。

wenyizhao的博客 6984

删除或者移动文件/文件夹时,提示:文件/文件夹正在使用

有时候我们在移动或者删除文件/文件夹时,系统会提示“文件正在使用”。操作无法完成,因为其中的文件夹或者文件已经在另一程序中打开请关闭该文件夹或文件,然后重试。这是因为文件夹中的某个文件被打开了,或者该文件或文件夹正在被其他程序占用。

学无止尽,谨言慎行! 2万+

linux 命令行移动文件

在当前文件夹下打开命令行,输入cp 文件名 路径验证已经移动过去cd 路径 lltip: 写文件名时可以先写开头几个字母,然后使用 ctrl+tab补充完整文件名

longshaonihaoa的博客 8万+
上一篇: UML基础(转来的找的方便)
下一篇: Mac OS X 常见快捷键
ShenRui
博客等级 码龄20年 63粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值