One quick follow-up on reversing your example. Is there an easy way to get
the file.path separator for the platform?  file.path("","") seems the be
the only way to do it.

So if filename is a valid file path, this will return the folders, drive,
and file name in vector form regardless of the platform:
folders = strsplit(normalizePath(filename, winslash="/"), "/")[[1]]
This will undo the above regardless of the platform:
paste(folders,collapse=file.path('"",""))

Thanks again for your help Duncan!

Ben


> On Wed, Dec 28, 2011 at 2:37 PM, Duncan Murdoch 
> <murdoch.dun...@gmail.com>wrote:
>
>> On 11-12-28 4:30 PM, Ben quant wrote:
>>
>>> Hello, (sorry re-posting due to typo)
>>>
>>> I'm attempting to get the folders of a path in a robust way (platform
>>> independent, format independent). It has to run on Windows and Linux and
>>> tolerate different formats.
>>>
>>> For these: (The paths don't actually exist in Linux but you get the
>>> idea.)
>>>
>>> Windows:
>>> file_full_path = "C://Program Files//R//R-2.13.1//NEWS.pdf"
>>> file_full_path = "C:\Program Files\R\R-2.13.1\NEWS.pdf"
>>> Linux:
>>> file_full_path = "~/Program FilesR/R-2.13.1/NEWS.pdf"
>>> file_full_path = "/home/username/Program FilesR/R-2.13.1/NEWS.pdf"
>>>
>>> I would get for Windows: "C", "Program Files", "R", "R-2.13.1","NEWS.pdf"
>>> I would get for Linux: "home","username", "Program Files", "R",
>>> "R-2.13.1","NEWS.pdf"
>>> (The drive and/or home/username aren't necessary, but would be nice to
>>> have. Also, that file name isn't necessary, but would be nice.)
>>>
>>> Thank you for your help,
>>>
>>>
>> If you use the normalizePath() function with winslash="/", then all
>> current platforms will return a path using "/" as the separator, so you
>> could do something like
>>
>> strsplit(normalizePath(**filename, winslash="/"), "/")[[1]]
>>
>> You need to be careful with normalizePath:  at least on Windows, it will
>> not necessarily do what you wanted if the filename doesn't exist.
>>
>> Duncan Murdoch
>>
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to