这是我的问题:
如何仅通过设置默认的“模式”参数来修改“目录”基本功能?
注意。我必须使用dir base函数,而不要使用另一个。
我之所以需要它的原因如下(以防万一有人建议其他解决方案):
我需要加载GGIR包
library(GGIR)
在加载时,还会加载一些功能。我正在使用其中许多功能(例如“ g.part2”),但出现此错误:
Error in load(paste0(path, fnames[i])) :
bad restore file magic number (file may be corrupted) -- no data loaded
In addition: Warning message:
file ‘desktop.ini’ has magic number '[.She'
Use of save versions prior to 2 is deprecated
我调试了程序包和功能,并且我已经知道发生了什么事
执行“ g.part2”时,将创建目录并将一些文件存储在其中。但是,在创建目录时,我的Windows还在其中创建了一个名为“ desktop.ini”的隐藏文件(我调查了几天,但没有找到避免生成desktop.ini的方法)。
然后,使用“ dir”功能恢复存储在目录中的文件名(包括desktop.ini)。这些文件已被读取,并且在尝试读取desktop.ini时失败。
为了解决这个问题,我的第一种方法是通过仅修改dir基本函数中“ pattern”参数中的默认值来创建用于排除desktop.ini的“ dir1”函数。然后我不得不修改“ g.part2”
trace(g.part2,edit=TRUE)
…并将“ dir(”替换为“ dir1(”
但是,类似于“ g.part2”,我需要使用几个函数(“ g.part3”,“ g.part4”,“ g.part5”,“ g.report.part4” ... 。),并在内部使用“ dir”功能。对我来说,每天“跟踪”许多功能是不可行的,此外,它不能以编程方式完成,不是吗?
因此,我认为解决方案(如果可能)是修改dir基本函数并为pattern参数设置默认值,仅用于排除desktop.ini文件。这样做,我不需要修改GGIR包中的任何功能。
最诚挚的问候
答案 0 :(得分:0)
我可以使用以下方法修改dir基本功能:
trace(base::dir,edit=TRUE)
但是,为了解决我的问题,我没有修改此基本功能,而是按照Gregor注释中的说明进行操作:
回复:分叉存储库,您转到其github页面,单击分叉按钮 在右上角,然后下载您自己的软件包副本 码。您可以打开它(在RStudio中),编辑所需的文件,然后 构建并安装修改后的版本。 (这可以全部 如果您安装了辅助程序包,devtools, roxygen2,testthat等。)这肯定是一种学习 经验,但是如果必要的更改实际上很小, 不会太糟
现在,我不需要手动修改任何内容。我只是加载我的GGIR库
load(GGIR)
…(由我修改),并且一切正常!。
非常感谢。
致谢