Re: Best way to get a file path for presentation to the user
Re: Best way to get a file path for presentation to the user
- Subject: Re: Best way to get a file path for presentation to the user
- From: Graham Cox <email@hidden>
- Date: Sat, 19 Dec 2015 19:51:03 +1100
> On 19 Dec 2015, at 5:23 AM, Jens Alfke <email@hidden> wrote:
>
>
>> On Dec 18, 2015, at 1:24 AM, Graham Cox <email@hidden> wrote:
>>
>> I want to display a path to the user. I have a URL, I need to show the local file path that represents (it’s always a local file path), where the /Users/<username>/ is replaced by ~/
>
> The best methods for this are in NSFileManager:
>
> /* displayNameAtPath: returns an NSString suitable for presentation to the user. For directories which have localization information, this will return the appropriate localized string. This string is not suitable for passing to anything that must interact with the filesystem.
> */
> - (NSString *)displayNameAtPath:(NSString *)path;
>
> /* componentsToDisplayForPath: returns an NSArray of display names for the path provided. Localization will occur as in displayNameAtPath: above. This array cannot and should not be reassembled into an usable filesystem path for any kind of access.
> */
> - (nullable NSArray<NSString *> *)componentsToDisplayForPath:(NSString *)path;
>
> There are other transformations to the path for display besides “~”. For example, the user should never see “/Volumes”, or hidden suffixes like “.app”. And some names get completely localized for display — the “Downloads” directory looks like “Dvökhn¶r” in Elbonian, for example.
>
> —Jens
Ah, thanks - I was looking through NSFileManager but somehow overlooked these.
My use case is an interface that sets up a batch of files for saving in a particular folder. The user chooses the folder using a standard NSOpenPanel, but I want to display the chosen location in the UI so that they don’t need to remember it. I don’t think a NSPathControl is really appropriate for this. But I do want the string to be the most understandable for the user. I don’t know really how many average users understand what ~/ means, but it’s probably the best I can do.
—Graham
_______________________________________________
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