如何从 R 中的文件夹中删除 'permission denied' 文件

How to remove a 'permission denied' file from folder within R

我正在下载一个大型 xlsx 文件作为功能的一部分。在 linux 和 mac 中使用 file.remove() 删除了此文件,但我在 windows mac 中被拒绝了权限。下面是我的函数的代码。

download.file(
'http://mirtarbase.mbc.nctu.edu.tw/cache/download/7.0/miRTarBase_MTI.xlsx',
'miRTarBase.xlsx', mode = "wb")
readxl::read_excel('miRTarBase.xlsx') -> miRTarBase
write.csv(miRTarBase, 'miRTarBase.csv')
read.csv('miRTarBase.csv', row.names = 1) -> miRTarBase
file.remove("miRTarBase.xlsx")

我在控制台中收到以下错误消息

Warning message:
In file.remove("miRTarBase.xlsx") :
 cannot remove file 'miRTarBase.xlsx', reason 'Permission denied'.

同样,此警告仅出现在 windows 中。

此外,在检查文件本身的属性后,未选中 'Read-only' 属性。

在此之后,下面的代码工作得很好,所以我认为问题也不出在文件夹上。

file.remove("miRTarBase.csv")

我认为问题在于 windows 中如何处理 .xlsx 文件。

当我尝试删除 .xlsx 文件时,Rstudio 仍然 运行 我收到一条文件正在使用警告消息。关闭 R 会话后,可以毫不费力地删除 .xlsx 文件。

这让我感到困惑,因为我不习惯使用 windows。以前有人遇到过这个问题吗?如果能提供任何帮助,我们将不胜感激。非常感谢。

您是否尝试过在 windows 中保存为临时文件?

tmp <-  tempfile()
download.file(
'http://mirtarbase.mbc.nctu.edu.tw/cache/download/7.0/miRTarBase_MTI.xlsx', tmp, mode = "wb")
readxl::read_excel(tmp) -> miRTarBase
write.csv(miRTarBase, 'miRTarBase.csv')
read.csv('miRTarBase.csv', row.names = 1) -> miRTarBase
file.remove(tmp)