Renombrar archivos programáticamente en LabVIEW

Actualizado el Dec 13, 2021

Reportado en

Software

  • LabVIEW

Detalles del problema

No hay Rename VI en la paleta File I / O. ¿Cómo puedo cambiar el nombre de un archivo en LabVIEW?

Solución

Método 1 : Utilice la función Move (Mover) de la paleta de E / S de archivo que mueve un archivo de una ubicación de ruta de archivo a otra. Sin embargo, para la nueva ubicación, proporcione la misma ubicación, pero con un nombre de archivo diferente.
  1. Haga clic con el botón derecho en el diagrama de bloques y seleccioneProgramming»File I/O»Advanced File Functions»Move
  2. Conecte el terminal de ruta de origen con la ruta completa actual y el nombre del archivo a renombrar (como C:\Folder1\Folder2\ ... \ Nombre de archivo.txt en Windows).
  3. Utilice las funciones Strip Path y Build Path que se encuentran en la paleta File I / O para reemplazar el nombre del archivo anterior con el nuevo nombre deseado. Conecte la ruta completa recién formada al terminal Target Path de la función Move. Esto se puede ver en la imagen de abajo.
 
Método 2 : un método alternativo es utilizar la función Copiar para crear una copia del archivo antiguo con un nombre nuevo y luego la función Eliminar para eliminar el archivo antiguo.
Nota : La ruta conectada al terminal Target Path puede ser diferente si desea mover la ubicación del archivo y cambiarle el nombre.

Nota : Si cambia el nombre de un VI cargado en la memoria, se cambiará el nombre del archivo en el disco, pero el VI en la memoria seguirá teniendo el nombre anterior. Cuando lo cierre, se le pedirá que lo guarde con el nombre anterior. A menos que cambie ese nombre por el nuevo, tendrá dos copias.

Nota: si está utilizando C: \ como ruta de archivo o destino, es probable que obtenga un error. Este error se produce porque no tiene permisos para copiar archivos directamente hacia o desde la unidad C sin privilegios administrativos. En su lugar, utilice otra ruta de carpeta.

Método 3 : se recomienda un tercer método si desea cambiar el nombre de archivos o carpetas muy grandes. Los métodos anteriores son ineficaces en este caso y llevarán mucho tiempo completarlos. El VI publicado a continuación utiliza un nodo de función de biblioteca de llamadas para llamar a la función MoveFileA en la API de Windows.
Para utilizar este método, configure el nodo de función de biblioteca de llamadas de la siguiente manera:
  1. En la pestaña Función, especifique kernel32.dll como el nombre o la ruta de la biblioteca .
  2. Seleccione MoveFileA en el menú desplegable Function name.
  3. Verifique que Run in UI thread stdcall (WINAPI) estén seleccionados.
  4. En la pestaña Parameters, cree tres parámetros:
    1. Nombre: tipo de retorno , Tipo: Numerico, Tipo de datos:Signed 32-bit Integer
    2. Nombre: arg1 , Tipo: String, Constan, Formato de cadena: Puntero de cadena C, Tamaño mínimo: <None>
    3. Nombre: arg2 , Tipo: String, Constan , Formato de cadena: Puntero de cadena C, Tamaño mínimo: <None>
  5. Su prototipo de función final aparecerá como int32_t MoveFileA (const CStr arg1, const CStr arg2).
Método 4 : Cambiar el nombre de los archivos es una función que se puede llamar usando la línea de comando. El siguiente ejemplo muestra cómo ejecutar una línea de comando para cambiar el nombre del archivo.
  1. El primer segmento del código es cmd / k cd <Carpeta contenedora> . Esto le indica a System Exec.vi que navegue hasta la carpeta contenedora . La / k permite ingresar múltiples líneas de comando en la misma cadena de texto.
  2. El segundo segmento es & renombrar <Nombre de archivo antiguo> <Nombre de archivo nuevo> . El & indica que hay un segundo comando para ejecutar. Cambiará el nombre de la carpeta de <Nombre de archivo antiguo> a <Nombre de archivo nuevo>.
Método 5: cambiar el nombre de todos los archivos de una carpeta a la vez : es posible cambiar el nombre de todos los archivos de una carpeta utilizando cualquiera de los métodos anteriores. El siguiente código demuestra el método de expansión uno para cambiar el nombre de todos los archivos en una carpeta específica.
Utilizando Recursive File List.vi y Get File Extension.vi , el método uno se aplica a cada archivo en la carpeta C: \ temp .
 
 
 

Attachments