我写了一个脚本来重命名文件。但是我发现修改日期被更改为相同的。所以如果按日期排序,原始顺序就会被破坏。有没有办法在不更改修改日期的情况下更改名称?或者,虽然日期更改了,但如果按日期排序,顺序仍然相同。以下是我当前的代码:
# save previous working folder
wkdir <- getwd()
# set the target folder
setwd("C:/Users/YY/Desktop/Tmp file/")
# set the file pattern
a <- list.files(path = ".", pattern = "abc_*.*$")
# set the name to be replaced
b<-gsub("abc_","ABC_",a)
# rename
file.rename(a,b)
# restore previous working folder
setwd(wkdir)
如果有人能帮助我,我将不胜感激。
3条答案
按热度按时间wbrvyc0a1#
我也有同样的问题-我需要处理文件,然后存档。我先在R中尝试,然后意识到副本更改了文件的原始日期时间戳。
我最终学会了shell()命令,并使用下面的代码解决了这个问题。因为我使用的是Windows操作系统,所以我在文件名中使用-R和-d来表示是R的形式(路径中的/形式)还是Windows的形式(路径中的\形式),并使用normalizePath()转换。
intern参数使操作系统反馈进入R对象rept,可以搜索rept以找到“1 file(s)copied”字符串表示成功或您想要的任何其他错误捕获。
我在平台上使用R版本2.15.3(2013年3月1日):x86_64-w 64-mingw 32/x64(64位),运行Windows 7专业版SP1。
oxiaedzo2#
当然有可能!
而不是使用像"REN"或"RENAME"命令,您可以使用"MOVE"命令重命名您的文件/文件夹,它们的日期将保持完全相同。
示例:
移动"C:\文件夹\文件名. txt""C:\文件夹\新文件名. txt"
如果由于某种原因您无法使用MOVE命令,则可以使用Nirsoft的Nircmd之类的程序将文件日期更改为您想要的任何日期。
语法:
nircmd.exe设置文件时间 "创建时间""修改时间"
示例:
nircmd.exe设置文件时间"c:\临时\我的文件. txt""2003年6月24日17:57:11""2005年11月22日10:21:56"
svujldwt3#
不更改修改日期就无法更改名称。请考虑一下!您正在修改文件(即使您没有修改内容)。
问:你在Windows文件夹视图中是按R还是按外部排序?问:你有没有想过按创建日期排序?
如果你在windows中排序,你应该知道如何按“创建日期”排序,如果你在R中排序,使用file.info获取相关属性,然后按此排序。