You assigned values to 'fn' and 'dpath' outside the function body and use these names as the arguments of your function, so actually 'cyfun' does not know what 'fn' and 'path' are. The solution is to put them in the arguments as default values:
cyfun <- function(fn = "C:/Documents and Settings/lma/Desktop/FamilyAEntrepreneurs/Entrepreneurs/Juha/book_log-20041210T095019.txt", dpath = "C:/Documents and Settings/lma/My Documents/Juha/book") { dir <- dirname(fn) fn <- basename(fn) deskdir <- dir.create(dpath) file.copy(fn, deskfile) } But even if you have fixed this problem, I don't think you can successfully copy all the files under 'dir', as you've only copied a single file 'fn' to 'deskdir' (and as 'fn' is only a base name, probably this function will fail again if R does not know where is 'fn'!). To get the file list under 'dir', you may need list.files(dirname(fn), all.files = TRUE); then copy this file list to 'deskdir'. BTW, it's not a good programming habit to assign values to the names of internal R functions/objects, as you did in 'dir <- dirname(fn)' because 'dir' is already an R function. > library(fortunes) > fortune('dog') Firstly, don't call your matrix 'matrix'. Would you call your dog 'dog'? Anyway, it might clash with the function 'matrix'. -- Barry Rowlingson R-help (October 2004) Regards, Yihui -- Yihui Xie <xieyi...@gmail.com> Phone: 515-294-6609 Web: http://yihui.name Department of Statistics, Iowa State University 3211 Snedecor Hall, Ames, IA On Mon, Sep 21, 2009 at 9:24 AM, Don MacQueen <m...@llnl.gov> wrote: > In your file.copy() command you have "deskfile", but "deskfile" does not > appear anywhere else. Perhaps you meant deskdir? > > After the error occurs, type > > traceback() > > and try to discern exactly where things went wrong. > > -Don > > At 5:05 PM +0300 9/21/09, Tammy Ma wrote: >> >> Content-Type: text/plain >> Content-Disposition: inline >> Content-length: 792 >> >> >> >> HI, All R users, >> >> My problem is: >> >>> fn >> >> [1] "C:/Documents and >> Settings/lma/Desktop/FamilyAEntrepreneurs/Entrepreneurs/Juha/book_log-20041210T095019.txt" >>> >>> dpath >> >> [1] "C:/Documents and Settings/lma/My Documents/Juha/book" >> >> >> I want to make a function "cyfun" to copy all files in "dir" to "deskdir" >> but I always got the following problem: >> >> Error in file.exists(to) : invalid 'file' argument. >> Whats the problem?? >> >> >> >> >> cyfun<-function(fn,dpath){ >> dir<-dirname(fn) >> fn<-basename(fn) >> >> deskdir<-dir.create(dpath) >> file.copy(fn, deskfile) >> >> } >> >> Thanks! >> >> Tammy >> >> _________________________________________________________________ >> Drag n’ drop—Get easy photo sharing with Windows Live™ Photos. >> >> http://*www.*microsoft.com/windows/windowslive/products/photos.aspx >> [[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. > > > -- > -------------------------------------- > Don MacQueen > Environmental Protection Department > Lawrence Livermore National Laboratory > Livermore, CA, USA > 925-423-1062 > > ______________________________________________ > 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. > ______________________________________________ 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.