Mutable File System | Lesson 8 of 11

Move a file or directory

MFS allows you to move files between directories just as you would on your local machine, using the method.

The method looks like this:

await, to, [options])

from is the source path (or paths) of the content you'd like to move. to is the destination path.

If your destination path references parent directories that don't already exist, you'll need to use the { parents: true } option, just as you did with files.mkdir.

You can use to perform a number of different operations:

// move a single file into a directory
await'/source-file.txt', '/destination-directory')

// move a directory into another directory
await'/source-directory', '/destination-directory')

// overwrite the contents of a destination file with the contents of a source file
await'/source-file.txt', '/destination-file.txt')

To move multiple files into a directory, you can add multiple source paths before the to argument:

// move multiple files into a directory
await'/source-file-1.txt', '/source-file-2.txt', '/source-file-3.txt', '/destination-directory')

If you're starting with an array of source paths, you can use JavaScript's spread syntax to expand its elements into the required format:

await, '/destination-directory')

Try it!

Move only the files (no directories) from your root directory into the some/stuff directory.

Remember that you can pass an array into as the from value. This is useful because it allows you to run the async function only once. Be sure to use the await keyword so that the mv call completes before the contents of your /some/stuff directory are evaluated.

When creating your array to pass in, ensure it only contains files, not directories. Remember that each object accessed through in IPFS has a type property that you can use to determine whether it's a file or a directory; its value is 0 for files and 1 for directories. (Hint: Try the filter or forEach array methods.)

Remember that needs paths, not filenames, so you'll need to prepend each filename in your array with /. (Hint: Try the map or forEach array methods and incorporate the name property available through the method.)

If you experience lag time after hitting "Submit", please try again, uploading smaller files to work with.

Step 1: Upload files
Step 2: Update code
View SolutionReplace with SolutionClear Default Code
Upload file(s) and update the code to complete the challenge.
You must upload a file before submitting.