NSFileCoordinator operations on a directory (and it's content)
NSFileCoordinator operations on a directory (and it's content)
- Subject: NSFileCoordinator operations on a directory (and it's content)
- From: Dragan Milić via Cocoa-dev <email@hidden>
- Date: Thu, 20 Jul 2023 13:17:40 +0200
Since my question is about specific Cocoa API, but it also involves file system
operations, I don't know it the appropriate place to ask is here or
Filesystem-dev list, so I'll ask on both (and hope nobody will mind it :-))
I have an application, which "messes" with files in different ways. It can
modify, move, copy, even delete them. So far all file operations were performed
directly, without any checking if affected files were already busy or locked by
other processes (or even the same application). So, in case a locked file is
encountered and the operation failed, an appropriate error was reported.
Now I want to enhance this behaviour and ensure two things:
- make sure all files to be performed on are available for the operation in
question (not busy/locked by other processes)
- before the operation starts, inform other processes, so they can act
accordingly if necessary.
The most obvious solution to me is using NSFileCoordinator class and its
reading/writing options. And even though documentation for this class is quite
descriptive and helpful, I have some unanswered questions. So before doing my
own tests (and perhaps even coming to potentially wrong conclusions), I'd like
to ask here if someone has already had experience with this class and what I
want to achieve with it.
The basic question is: if I start coordinated operation (reading or writing) on
a directory identified by an URL, does that operation intent automatically
spans to all files and folders in the directory, all the way down the whole
directory hierarchy?
Or let me try to me more specific; I want to read all files in a certain
directory, but then also list all its subfolders and read their (sub)files and
go on like that down the directory hierarchy. While doing so, I don't want any
other process to mess (modify, delete…) with any of those subfiles and
subdirectories in the hierarchy. Is it enough to request coordinated reading to
the root directory only, or do I still need to require coordinating reading to
subfiles and subfolders? Or to put it another way, if I start coordinated
reading on the root directory only, will other processes still be allowed to
mess with subfiles and subdirectories?
Or does this behaviour depend on the read/write option I actually want to
perform? For example, requesting NSFileCoordinatorReadingWithoutChanges on a
directory doesn't necessarily imply reading intent to all its subfolders and
subfiles down the hierarchy. But requesting e.g.
NSFileCoordinatorWritingForDeleting on a directory certainly implies the
deletion will also affect all its subfiles and subfolders.
I hope I was clear enough about what I want to achieve. Thanks for any insights.
-- Dragan
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden