[R] Problem with choose.files(default=..., multi=FALSE)

Duncan Murdoch murdoch.duncan at gmail.com
Fri May 19 15:57:21 CEST 2017


On 10/05/2017 6:46 AM, Keith Jewell wrote:
> Thanks for confirming that I wasn't being stupid :-}
>
> When using default=pathlong I get the _correct_ starting directory...
> (M:\test\Averyveryveryveryverylongfoldername\Averyveryveryveryverylongfoldername\Averyveryveryveryverylongfoldername)
>
> ... both in the environment I indicated originally (Windows Server 2008
> R2 x64) and also in Windows 10 x64

This should now be fixed in R-patched and R-devel, as of revision 72703. 
  The issue was that the Windows API function returned its results in a 
slightly different format when multi=FALSE.  When there was no default 
or a short one, the two formats happened to look identical so we didn't 
notice this, but they differed when the default was longer than the result.

Duncan Murdoch

>
> Keith Jewell
>
> On 09/05/2017 17:49, Duncan Murdoch wrote:
>> On 09/05/2017 12:06 PM, Keith Jewell wrote:
>>> I'm very hesitant to suggest that there's a bug in such a venerable R
>>> function, but I can't see what I'm doing wrong. Any comments are welcome
>>
>> Yes, it looks like a bug.  One other thing I find a little strange: the
>> starting directory seems wrong when I have the pathlong default.  Did
>> you see that?  (I'm in Windows 10, not the same version as you.)
>>
>> Duncan Murdoch
>>
>>>
>>> When using choose.files() where:
>>>      default = something
>>>      multi = FALSE
>>>      selected file path is shorter than the default
>>> ... then the returned value is at least as long as the default,
>>> characters from default appearing (wrongly) at the end of the returned
>>> value.
>>>
>>> Example, in which all but the first choose.files() select
>>> "M:\\test\\target.dat". Note the last result.
>>>
>>>  > pathlong <- choose.files(caption = "long")
>>>  > pathlong # long file name to use as default for short selection
>>> [1]
>>> "M:\\test\\Averyveryveryveryverylongfoldername\\Averyveryveryveryverylongfoldername\\Averyveryveryveryverylongfoldername\\target.dat"
>>>
>>>  > choose.files(caption = "short")  # no default without multi works
>>> [1] "M:\\test\\target.dat"
>>>  > choose.files(default=pathlong, caption = "short") # default without
>>> multi= works
>>> [1] "M:\\test\\target.dat"
>>>  > choose.files(caption = "short", multi = FALSE) # multi = FALSE
>>> without default works
>>> [1] "M:\\test\\target.dat"
>>>  > choose.files(default=pathlong, caption = "short", multi = TRUE) #
>>> multi = TRUE with default works
>>> [1] "M:\\test\\target.dat"
>>>  > choose.files(default=pathlong, caption = "short", multi = FALSE) #
>>> multi = FALSE with default fails
>>> [1]
>>> "M:\\test\\target.dat\\ryveryverylongfoldername\\Averyveryveryveryverylongfoldername\\Averyveryveryveryverylongfoldername\\target.dat"
>>>
>>>
>>>  > # in case it's relevant
>>>  > sessionInfo()
>>> R version 3.4.0 (2017-04-21)
>>> Platform: i386-w64-mingw32/i386 (32-bit)
>>> Running under: Windows Server 2008 R2 x64 (build 7601) Service Pack 1
>>>
>>> Matrix products: default
>>>
>>> locale:
>>> [1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United
>>> Kingdom.1252
>>> [3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C
>>>
>>> [5] LC_TIME=English_United Kingdom.1252
>>>
>>> attached base packages:
>>> [1] graphics  grDevices datasets  stats     tcltk     utils     tools
>>>    methods
>>> [9] base
>>>
>>> other attached packages:
>>>   [1] CBRIutils_1.0   stringr_1.2.0   svSocket_0.9-57 TinnR_1.0-5
>>> R2HTML_2.3.2
>>>   [6] Hmisc_4.0-3     ggplot2_2.2.1   Formula_1.2-1   survival_2.41-3
>>> lattice_0.20-35
>>>
>>> loaded via a namespace (and not attached):
>>>   [1] RColorBrewer_1.1-2  htmlTable_1.9       digest_0.6.12
>>> htmltools_0.3.6
>>>   [5] splines_3.4.0       scales_0.4.1        grid_3.4.0
>>> checkmate_1.8.2
>>>   [9] devtools_1.12.0     knitr_1.15.1        munsell_0.4.3
>>> compiler_3.4.0
>>> [13] tibble_1.3.0        nnet_7.3-12         acepack_1.4.1
>>> Matrix_1.2-10
>>> [17] svMisc_0.9-70       plyr_1.8.4          base64enc_0.1-3
>>> data.table_1.10.4
>>> [21] stringi_1.1.5       magrittr_1.5        gtable_0.2.0
>>> colorspace_1.3-2
>>> [25] foreign_0.8-68      cluster_2.0.6       gridExtra_2.2.1
>>> htmlwidgets_0.8
>>> [29] withr_1.0.2         lazyeval_0.2.0      backports_1.0.5
>>> memoise_1.1.0
>>> [33] rpart_4.1-11        Rcpp_0.12.10        latticeExtra_0.6-28
>>>  >
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> 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.
>>>
>>
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>



More information about the R-help mailing list