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

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

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

硬件笔记——HDMI接口

HDMI可以同时传输视频信号、音频信号和控制信号。其中高速信号有四组:从Data TX到Data RX有3组差分数据信号(TMDS_DATA0~2)和一组差分时钟信号(TMDS_CLOCK)。以及若干低速线。脚编号信号名称信号类型功能说明1热插拔检测连接状态检测。接收端通过此引脚向源端发送高电平信号,通知其已连接并可以开始读取EDID。2UTILITY车载用途悬空3TMDS数据通道2差分信号正极,用于传输视频像素、音频和数据包。4TMDS数据2屏蔽。

2501_94625908的博客 537

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

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

weixin_30832143的博客 1232

阿里云网络架构设计

背景 一个企业上云,首先要考虑整个网络的规划,涉及到云上和云下的网络规划,云上VPC的规划,云上不同地域VPC的互通,云上可用区的选择等等,所以一定要提前规划好整体的网络架构,现在阿里云云上的虚拟化网络解决方案已经完全转向 了云企业网,所以所有使用阿里云的企业客户多多少少都会使用阿里云的CEN 支撑自己的业务。 云企业网介绍 云企业网(Cloud Enterprise Network)是承载在阿里云提供的高性能、低延迟的私有全球网络上的一张高可用网络。 IDC专线接入CEN 首先面临的是云上和云下打通,那么

修电脑的码农 4838

Windows平台无人机仿真:从零搭建SITL环境与QGC联调

本文详细指导了在Windows平台上从零搭建无人机软件在环(SITL)仿真环境,并与QGroundControl(QGC)进行联调的完整流程。通过使用Cygwin工具链,开发者可以在没有实体硬件的情况下,模拟运行ArduPilot飞控,并通过MAVLink协议连接QGC地面站进行全功能测试,为无人机软件开发提供了一个安全、经济的虚拟沙盒环境。

weixin_29239279的博客 407

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

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

Bobowen的博客 2226

逆变器技术解析:DDSRF双解耦在正负序分离中的关键作用

本文深入解析了DDSRF双解耦技术在逆变器正负序分离中的关键作用。通过建立正反旋转坐标系并利用交叉反馈解耦网络,DDSRF能快速、精准地分离电网电压中的正负序分量,从而显著提升锁相环在电网不平衡条件下的精度与系统稳定性,是现代高性能并网逆变器的核心算法之一。

m3n5b7v8c9x的博客 409

API函数MoveFileEx使用详解

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

Augusdi的专栏 1万+

人工蜂鸟算法(AHA)详解:原理、实现与应用

人工蜂鸟算法(AHA)是一种受蜂鸟飞行技能和觅食策略启发的新型元启发式优化算法。该算法模拟蜂鸟的全向飞行、记忆能力和觅食行为,通过引导觅食、领地觅食和迁徙觅食三种策略在解空间高效搜索。AHA将优化问题解类比为食物源,蜂鸟作为搜索代理,利用访问表记录访问信息。算法核心包括三种飞行技能建模(全向、对角线和轴向飞行)以及对应的数学公式实现。Python实现展示了种群初始化、适应度计算和觅食行为模拟等关键步骤。AHA以其高效的全局搜索能力、良好收敛性和鲁棒性,在复杂优化问题中表现优异。

qq_42212808的博客 904

Atlas 300I Duo - vllm部署Qwen3-VL-8B-Instruct

本文介绍了在Ascend NPU环境下部署Qwen3-VL-8B大语言模型的步骤。主要包括:1)安装驱动、docker和vllm镜像;2)创建特权容器并挂载设备与目录;3)进入容器安装指定版本的transformers;4)设置环境变量和NPU卡配置;5)启动vllm服务;6)测试API接口。部署过程涉及多块NPU卡的使用,需注意内存碎片化问题,最终通过vllm框架提供模型推理服务。

m0_50105717的博客 1561

MoveFileEx

函数原型:   BOOL MoveFileEx(   LPCTSTR lpExistingFileName, // file name   LPCTSTR lpNewFileName, // new file name   DWORD dwFlags // move options   ); 参数说明:   lpExistingFileName,一个存在的文件

oceanark的博客 2137

【RT-DETR改进涨点】ResNet18、34、50、101等多个版本移植到ultralytics仓库(RT-DETR官方一比一移植)

本文是本专栏的第一篇改进,我将RT-DETR官方版本中的ResNet18、ResNet34、ResNet50、ResNet101移植到ultralytics仓库,网上很多改进机制是将基础版本的也就是2015年发布的ResNet移植到ultralytics仓库中,但是其实RT-DETR实验的ResNet和其是有很大区别的在其中有很多细节上的不同(文章中我也会列出举例)

Snu77的博客 7216

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

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

Wendysuly的专栏 1374

基于V7-690T FPGA纯逻辑实现NVMe SSD盘的读写(不使用软核)

a.NVMe的Admin CQ与Admin SQ命令放在Host内存中;因此SQ的64B要用FPGA的DDR或开一个bram空间存放,同理NVME写到HOST的CQ命令也需要存放在FPGA的DDR或一个bram空间,host收到NVME传来的MSI/MSI-X中断后,去CQ存放空间取CQ指令;b. 发送identify命令后,需要发送tial doorbell通知NVME;(发送CNS01h获取4096字节的固件信息等;发送CNS02h获取1024字节的namaspace list)

宝沐熙的博客 833

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

1417

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

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

周志超的博客 1155

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

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

lucky20919的博客 8万+

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

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

wenyizhao的博客 6984

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

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

学无止尽,谨言慎行! 2万+
上一篇: 计算机族应常喝的健康饮品
下一篇: API函数大全
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值