# Actualizar archivos

Otro método poderoso para la manipulación de archivos es el método fs.open().


fs.open(path, flags[, mode], callback)

Este método puede tomar diferentes indicadores que cambian su comportamiento. Estas son algunas de las banderas que fs.open() puede tomar:

  • 'r': archivo abierto para leer. Se produce una excepción si el archivo no existe.
  • 'r+': archivo abierto para leer y escribir. Se produce una excepción si el archivo no existe.
  • 'w': archivo abierto para escritura. El archivo se crea (si no existe) o se trunca (si existe).
  • 'w+': archivo abierto para leer y escribir. El archivo se crea (si no existe) o se trunca (si existe).
  • 'a': archivo abierto para agregar. El archivo se crea si no existe.
  • 'a+': archivo abierto para leer y agregar. El archivo se crea si no existe.

TIP

Las banderas 'w' y 'a' también se pueden usar con una bandera 'x' como 'wx+' o 'ax'. Estos funcionan de manera similar a la bandera original pero fallan si el archivo existe.

El siguiente ejemplo muestra cómo agregar un archivo usando ambos fs.open() y fs.appendFile():

fs.open('file.txt', 'a', (err, fd) => {
 if (err) throw err;
 fs.appendFile(fd, 'Text/Data to append', 'utf8', (err) => {
   fs.close(fd, (err) => {
     if (err) throw err;
   });
   if (err) throw err;
 });
});

TIP

Si necesita la versión síncrona, utilice el método fs.openSync().

Para renombrar archivos, use el método fs.rename().

fs.rename('/home/file1', '/home/file2', (err) => {
  if (err) throw err;
  console.log('rename completed');
});