From xie at yihui.name  Sun Mar  6 22:08:47 2011
From: xie at yihui.name (Yihui Xie)
Date: Sun, 6 Mar 2011 15:08:47 -0600
Subject: [Rd] Fwd: file mode lost in file.copy()?
In-Reply-To: <AANLkTik7S5Baq25kLJhayo--hMt92SnfwM3QKc4PLOjW@mail.gmail.com>
References: <AANLkTik7S5Baq25kLJhayo--hMt92SnfwM3QKc4PLOjW@mail.gmail.com>
Message-ID: <AANLkTimyeHXynSw1v8hEz_qbke0mN1t1ci7LBEVZqVC=@mail.gmail.com>

Hi,

I was suggested that this question should be reported to r-devel.
Could you please make file.copy() preserve the file mode information?
I see from the source code that file.copy() is basically
file.append():

    if (any(okay)) {
        okay[okay] <- file.create(to[okay])
        if (any(okay))
            okay[okay] <- file.append(to[okay], from[okay])
    }

Maybe something like this should be added to file.copy():

Sys.chmod(to[okay], file.info(from[okay])$mode)

Thanks!

Regards,
Yihui
--
Yihui Xie <xieyihui at gmail.com>
Phone: 515-294-2465 Web: http://yihui.name
Department of Statistics, Iowa State University
2215 Snedecor Hall, Ames, IA




---------- Forwarded message ----------
From: Yihui Xie <xie at yihui.name>
Date: Sat, Mar 5, 2011 at 5:31 PM
Subject: file mode lost in file.copy()?
To: R Help <r-help at r-project.org>


Hi,

Recently I noticed file.copy() would discard the file mode
information. Is this the expected behaviour or a bug for file.copy()?

> file.create('testfile')
[1] TRUE

> file.info('testfile')
? ? ? ? size isdir mode ? ? ? ? ? ? ? mtime ? ? ? ? ? ? ? ctime
testfile ? ?0 FALSE ?644 2011-03-05 17:06:39 2011-03-05 17:06:39
? ? ? ? ? ? ? ? ? ? ? atime ?uid ?gid uname grname
testfile 2011-03-05 17:06:40 1000 1000 yihui ?yihui

> Sys.chmod('testfile', '0755')

> file.info('testfile')
? ? ? ? size isdir mode ? ? ? ? ? ? ? mtime ? ? ? ? ? ? ? ctime
testfile ? ?0 FALSE ?755 2011-03-05 17:06:39 2011-03-05 17:06:59
? ? ? ? ? ? ? ? ? ? ? atime ?uid ?gid uname grname
testfile 2011-03-05 17:07:00 1000 1000 yihui ?yihui

> file.copy('testfile', 'testfile2')
[1] TRUE

> file.info('testfile2')
? ? ? ? ?size isdir mode ? ? ? ? ? ? ? mtime ? ? ? ? ? ? ? ctime
testfile2 ? ?0 FALSE ?644 2011-03-05 17:07:20 2011-03-05 17:07:20
? ? ? ? ? ? ? ? ? ? ? ?atime ?uid ?gid uname grname
testfile2 2011-03-05 17:07:21 1000 1000 yihui ?yihui

> sessionInfo()
R version 2.12.2 (2011-02-25)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
?[1] LC_CTYPE=en_US.utf8 ? ? ? LC_NUMERIC=C
?[3] LC_TIME=en_US.utf8 ? ? ? ?LC_COLLATE=en_US.utf8
?[5] LC_MONETARY=C ? ? ? ? ? ? LC_MESSAGES=en_US.utf8
?[7] LC_PAPER=en_US.utf8 ? ? ? LC_NAME=C
?[9] LC_ADDRESS=C ? ? ? ? ? ? ?LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.utf8 LC_IDENTIFICATION=C

attached base packages:
[1] stats ? ? graphics ?grDevices utils ? ? datasets ?methods ? base


Regards,
Yihui
--
Yihui Xie <xieyihui at gmail.com>
Phone: 515-294-2465 Web: http://yihui.name
Department of Statistics, Iowa State University
2215 Snedecor Hall, Ames, IA



[Rd] Fwd: file mode lost in file.copy()?
Yihui Xie