forked from StarOpenSource/Engine
Add FileAccess#move and FileAccess#copy methods
This commit is contained in:
parent
de6b5f76f2
commit
a7dabfb923
1 changed files with 62 additions and 36 deletions
|
@ -628,42 +628,7 @@ public final class FileAccess {
|
|||
}
|
||||
|
||||
|
||||
// -----> File/Directory creation and deletion
|
||||
/**
|
||||
* Deletes the file.
|
||||
* If it doesn't exist, nothing will be done.
|
||||
*
|
||||
* @return this instance
|
||||
* @since v1-alpha8
|
||||
*/
|
||||
public @NotNull FileAccess delete() {
|
||||
if (exists()) {
|
||||
Logger.diag("Deleting \"" + path + "\"");
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
file.delete();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks this file for deletion at engine shutdown.
|
||||
*
|
||||
* @return this instance
|
||||
* @see Engine#shutdown()
|
||||
* @see Engine#shutdown(int)
|
||||
* @since v1-alpha8
|
||||
*/
|
||||
public @NotNull FileAccess deleteOnShutdown() {
|
||||
Logger.diag("Marking \"" + path + "\" for deletion at engine shutdown");
|
||||
|
||||
// Append path to scheduledDeletion array
|
||||
List<@NotNull Path> scheduledDeletionList = new ArrayList<>(Arrays.stream(scheduledDeletion).toList());
|
||||
scheduledDeletionList.add(path);
|
||||
scheduledDeletion = scheduledDeletionList.toArray(new Path[0]);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
// -----> File/Directory creation, moving, copying and deletion
|
||||
/**
|
||||
* Creates the file.
|
||||
* If it already exists, nothing will be done.
|
||||
|
@ -725,6 +690,67 @@ public final class FileAccess {
|
|||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves this file.
|
||||
*
|
||||
* @param destination destination to move this file to
|
||||
* @return supplied destination
|
||||
* @throws IOException on an IO error
|
||||
* @since v1-alpha9
|
||||
*/
|
||||
public @NotNull FileAccess move(@NotNull FileAccess destination) throws IOException {
|
||||
Files.move(path, destination.path);
|
||||
return destination;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies this file.
|
||||
*
|
||||
* @param destination destination to copy this file to
|
||||
* @return this instance
|
||||
* @throws IOException on an IO error
|
||||
* @since v1-alpha9
|
||||
*/
|
||||
public @NotNull FileAccess copy(@NotNull FileAccess destination) throws IOException {
|
||||
Files.move(path, destination.path);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes this file.
|
||||
* If it doesn't exist, nothing will be done.
|
||||
*
|
||||
* @return this instance
|
||||
* @since v1-alpha8
|
||||
*/
|
||||
public @NotNull FileAccess delete() {
|
||||
if (exists()) {
|
||||
Logger.diag("Deleting \"" + path + "\"");
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
file.delete();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks this file for deletion at engine shutdown.
|
||||
*
|
||||
* @return this instance
|
||||
* @see Engine#shutdown()
|
||||
* @see Engine#shutdown(int)
|
||||
* @since v1-alpha8
|
||||
*/
|
||||
public @NotNull FileAccess deleteOnShutdown() {
|
||||
Logger.diag("Marking \"" + path + "\" for deletion at engine shutdown");
|
||||
|
||||
// Append path to scheduledDeletion array
|
||||
List<@NotNull Path> scheduledDeletionList = new ArrayList<>(Arrays.stream(scheduledDeletion).toList());
|
||||
scheduledDeletionList.add(path);
|
||||
scheduledDeletion = scheduledDeletionList.toArray(new Path[0]);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
// -----> File locking
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue