当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R changedFiles 检测哪些文件已更改


R语言 changedFiles 位于 utils 包(package)。

说明

fileSnapshot 拍摄所选文件的快照,记录每个文件的摘要信息。 changedFiles 比较两个快照,或将一个快照与文件系统的当前状态进行比较。快照不必是同一目录;这可用于比较两个目录。

用法

fileSnapshot(path = ".", file.info = TRUE, timestamp = NULL, 
	    md5sum = FALSE, digest = NULL, full.names = length(path) > 1,
	    ...) 

changedFiles(before, after, path = before$path, timestamp = before$timestamp, 
	    check.file.info = c("size", "isdir", "mode", "mtime"), 
	    md5sum = before$md5sum, digest = before$digest, 
	    full.names = before$full.names, ...)
	    
## S3 method for class 'fileSnapshot'
print(x, verbose = FALSE, ...)

## S3 method for class 'changedFiles'
print(x, verbose = FALSE, ...) 

参数

path

特征向量;要记录的路径。

file.info

逻辑性;是否记录每个文件的file.info值。

timestamp

字符串或NULL;拍摄快照时要写入的文件的名称。这可以快速测试修改情况,但可能不可靠;请参阅详细信息。

md5sum

逻辑性;是否应将每个文件的 MD5 摘要作为快照的一部分。

digest

函数或NULL;带有标题 function(filename) 的函数,它将采用文件名向量并生成相同长度的值向量,或具有该行数的矩阵。

full.names

逻辑性;是否应记录全名(如 list.files )。如果 length(path) > 1 则必须是 TRUE

...

传递给 list.files 的其他参数以控制快照中的文件集。

before, after

fileSnapshot 生成的对象;两个快照进行比较。如果after丢失,将使用before中记录的参数作为默认值生成当前文件系统的新快照用于比较。

check.file.info

特征向量;应比较 file.info 中的哪些列。

x

要打印的对象。

verbose

逻辑性;打印时是否列出所有数据。

细节

fileSnapshot 函数使用 list.files 获取文件列表,并根据 file.infomd5sumdigest 参数记录有关每个文件的信息。

changedFiles 函数比较两个快照。

如果 fileSnapshottimestamp 参数长度为 1,则会创建具有该名称的文件。如果 changedFiles 中的长度为 1,则使用 file_test 函数将 beforeafter 共有的所有文件的年龄与其进行比较。该测试可能不可靠:它将after 文件的当前修改时间与时间戳进行比较;这可能与拍摄 after 快照时的修改时间不同。如果保存时间戳的文件系统上的时钟与保存快照文件的时钟不同,也可能会给出不正确的结果。

如果 check.file.info 参数包含非空字符向量,则将比较 file.info 调用结果中的指示列。

如果md5sumTRUEfileSnapshot将调用tools::md5sum函数记录每个文件的32字节MD5校验和,changedFiles将比较这些值。 digest 参数允许用户提供自己的摘要函数。

fileSnapshot 返回类 "fileSnapshot" 的对象。这是一个包含字段的列表

info

一个 DataFrame ,其行名是文件名,其列包含请求的快照数据

path

调用中的标准化path

timestamp, file.info, md5sum, digest, full.names

调用中其他参数的记录

args

其他参数通过 ... 传递到 list.files

changedFiles 生成 "changedFiles" 类的对象。这是一个列表,其中包含

added, deleted, changed, unchanged

快照之前和之后的文件名的字符向量,具有明显的含义

changes

一个逻辑矩阵,其中一行代表每个公共文件,一列代表每个比较测试。 TRUE 表示该测试发生了变化。

print 方法是为每种类型定义的。 "fileSnapshot" 对象的 print 方法显示用于生成它们的参数。而 "changedFiles" 则显示 addeddeletedchanged 字段(如果非空),以及包含所有 TRUE 值的 changes 矩阵的子矩阵。

例子

# Create some files in a temporary directory
dir <- tempfile()
dir.create(dir)
writeBin(1L, file.path(dir, "file1"))
writeBin(2L, file.path(dir, "file2"))
dir.create(file.path(dir, "dir"))

# Take a snapshot
snapshot <- fileSnapshot(dir, timestamp = tempfile("timestamp"), md5sum=TRUE)
  
# Change one of the files.
writeBin(3L:4L, file.path(dir, "file2"))

# Display the detected changes.  We may or may not see mtime change...
changedFiles(snapshot)
changedFiles(snapshot)$changes

作者

Duncan Murdoch, using suggestions from Karl Millar and others.

也可以看看

file.infofile_testmd5sum

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Detect which Files Have Changed。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。