解决方案
方法1 :使用文件I/O面板中的移动函数将文件从原本文件路径移动到另一个文件路径。但是,对于新路径,请提供相同的位置,但使用不同的文件名。
- 在程序框图上右键点击,然后选择编程>>文件I/O>>高级文件函数>>移动。
- 将要重命名的文件的当前完整路径和名称连接到源路径(例如Windows中的C:\Folder1\Folder2\...\Filename.txt )。
- 使用文件I/O面板上的拆分路径和创建路径函数,将旧文件的名称替换为所需的新名称。将新形成的完整路径连接到移动函数的目标路径。请参考下图VI片段。
方法2 :另一种代方法是使用复制函数创建具有新名称的旧文件副本,然后使用删除函数删除旧文件。
注释:连接到目标路径的路径可能会因您希望移动文件的位置并重命名文件而有所不同。
注释:如果重命名加载在内存中的VI,则磁盘上的文件将被重命名,但内存中的VI仍将使用旧名称。关闭它时,将提示您使用旧名称保存它。除非将该名称更改为新名称,否则将有两个副本。
注释:如果使用C:\作为文件路径或目标,则可能会出现错误。发生此错误的原因是您在没有管理特权的情况下直接复制文件至C盘或从C盘器复制文件。请改用其他文件夹路径。
方法3 :如果要重命名非常大的文件或文件夹,则建议使用第三种方法。在这种情况下,上述方法效率不高,需要很长时间才能完成。下图VI使用调用库函数节点调用Windows API中的MoveFileA函数。
要使用此方法,请按照以下方式设置调用库函数节点:
- 在函数选项卡上,将kernel32.dll指定为库名/路径。
- 从函数名下拉菜单中选择MoveFileA。
- 检查是否已选择在UI线程中运行 和 stdcall(WINAPI) 。
- 在参数选项卡上,创建三个参数:
- 名称:返回类型,类型:数值,数据类型:有符号的32位整数
- 名称:arg1 ,类型:字符串,常量,字符串格式: C字符串指针,最小尺寸:<None>
- 名称:arg2 ,类型:字符串,常量,字符串格式: C字符串指针,最小尺寸:<None>
- 您最终的函数原型将显示为int32_t MoveFileA(const CStr arg1, const CStr arg2)。
方法4 :重命名文件是可以在命令行上调用的函数。以下示范如何运行命令行来更改文件名。
- 代码的第一段是cmd /k cd <包含文件夹> 。这告诉执行系统命令(System Exec.vi)导航到包含文件夹。/k允许在同一文本字符串中输入多个命令行。
- 第二段是 & rename <旧文件命名> <新文件命名> 。&表示还有第二个命令要执行。它将把文件从<旧文件命名>重命名为<新文件命名>。
方法5 :一次重命名文件夹中的所有文件:可以使用上述任何方法重命名文件夹中的所有文件。以下下代码片段演示了扩展方法1,以重命名特定文件夹中的所有文件。
使用方法1,并配合使用递归文件列表vi和获取文件扩展名vi ,将重命名C:\temp文件夹中的每个文件。