Instance Method

movePath:toPath:handler:

Moves the directory or file specified by a given path to a different location in the file system identified by another path.

Declaration

- (BOOL)movePath:(NSString *)src toPath:(NSString *)dest handler:(id)handler;

Parameters

source

The path of a file or directory to move. source must exist.

destination

The path to which source is moved. destination must not yet exist. The destination path must end in a filename; there is no implicit adoption of the source filename.

handler

An object that responds to the callback messages fileManager:willProcessPath: and fileManager:shouldProceedAfterError:. You can specify nil for handler; if you do so and an error occurs, the method automatically returns NO.

Return Value

YES if the move operation is successful. If the operation is not successful, but the handler method fileManager:shouldProceedAfterError: returns YES, movePath:toPath:handler: also returns YES; otherwise returns NO.

Discussion

If source is a file, the method creates a file at destination that holds the exact contents of the original file and then deletes the original file. If source is a directory, movePath:toPath:handler: creates a new directory at destination and recursively populates it with duplicates of the files and directories contained in source. It then deletes the old directory and its contents. Symbolic links are not traversed, however links are preserved. File or directory attributes—that is, metadata such as owner and group numbers, file permissions, and modification date—are also moved.

The handler callback mechanism is similar to delegation. NSFileManager sends fileManager:willProcessPath: when it begins a copy, move, remove, or link operation. It sends fileManager:shouldProceedAfterError: when it encounters any error in processing.

If a failure in a move operation occurs, either the preexisting path or the new path remains intact, but not both.

Special Considerations

Because this method does not return error information, it has been deprecated as of OS X v10.5. Use moveItemAtURL:toURL:error: instead.

See Also

Deprecated Methods

- copyPath:toPath:handler:

Copies the directory or file specified in a given path to a different location in the file system identified by another path.

Deprecated
- removeFileAtPath:handler:

Deletes the file, link, or directory (including, recursively, all subdirectories, files, and links in the directory) identified by a given path.

Deprecated
- changeFileAttributes:atPath:

Changes the attributes of a given file or directory.

Deprecated
- fileAttributesAtPath:traverseLink:

Returns a dictionary that describes the POSIX attributes of the file specified at a given.

Deprecated
- fileSystemAttributesAtPath:

Returns a dictionary that describes the attributes of the mounted file system on which a given path resides.

Deprecated
- directoryContentsAtPath:

Returns the directories and files (including symbolic links) contained in a given directory.

Deprecated
- createDirectoryAtPath:attributes:

Creates a directory (without contents) at a given path with given attributes.

Deprecated
- createSymbolicLinkAtPath:pathContent:

Creates a symbolic link identified by a given path that refers to a given location.

Deprecated
- pathContentOfSymbolicLinkAtPath:

Returns the path of the directory or file that a symbolic link at a given path refers to.

Deprecated
- linkPath:toPath:handler:

Creates a link from a source to a destination.

Deprecated
- fileManager:shouldProceedAfterError:

An NSFileManager object sends this message to its handler for each error it encounters when copying, moving, removing, or linking files or directories.

Deprecated
- fileManager:willProcessPath:

An NSFileManager object sends this message to a handler immediately before attempting to move, copy, rename, or delete, or before attempting to link to a given path.

Deprecated

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software