使用basename捕获导致错误的文件名值的一部分

罗夏

我在Windows框上,basename用于从某些目录中提取文件名。显然,文件名的大小是有限制的,否则basename会引发错误(之前我在linux上,那里我不记得了[麻烦],快速浏览一下源代码看起来像basename不同的系统会有所不同-因此,这在Linux或osx上很可能不是可重现的示例)。

无论如何,我都封装basename了一个,tryCatch并且想在出现错误时仅捕获文件名的最后一块。我怎样才能做到这一点?

示例如下:

filename <- paste0("c:/some directory/", paste(rep("abc ", 100), collapse=""), ".txt")
basename(filename)
# Error in basename(filename) : path too long

所以,我做了一个tryCatch,

value <- tryCatch(basename(filename), error=function(e) e)
str(value)
# $ message: chr "path too long"
# $ call   : language basename(filename)
# - attr(*, "class")= chr [1:3] "simpleError" "error" "condition"

但是,我怎么能说出文件名的最后30个字符,而不仅仅是一条错误消息?

拉尔

这里的数学比注释中更好。我没有收到您所说的错误,所以我会做一个

filename <- paste0("c:/some directory/", paste(rep("abc ", 100), collapse=""), ".txt")
basename(filename)


value <- tryCatch(simpleError(), error=function(e)
  substring(filename, nchar(filename) - 29, nchar(filename)))
str(value)

# chr "c abc abc abc abc abc abc .txt"

或者

value <- tryCatch(simpleError(), error=function(e)
  gsub('(.{30}$)|.', '\\1', filename))
str(value)

# chr "c abc abc abc abc abc abc .txt"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash删除文件名的一部分

来自分类Dev

更改文件名grep的一部分或重命名

来自分类Dev

Powershell根据文件名的一部分移动文件

来自分类Dev

如何使用bash脚本删除文件名的一部分

来自分类Dev

重击:替换文件名的一部分

来自分类Dev

如何在Java中提取CSV文件的文件名的一部分

来自分类Dev

如何在Logrotate上使用日期和时间作为文件名的一部分?

来自分类Dev

获取文件名的一部分

来自分类Dev

检索文件名的一部分

来自分类Dev

JMeter预处理变量作为报告文件名的一部分

来自分类Dev

使用node.js脚本重命名文件名的一部分

来自分类Dev

提取文件名的一部分

来自分类Dev

如何使用bash脚本删除文件名的一部分

来自分类Dev

如何在Java中提取CSV文件的文件名的一部分

来自分类Dev

Android-使用文件名的一部分检查文件是否存在

来自分类Dev

重命名文件,删除文件名bash脚本的一部分

来自分类Dev

删除文件夹中所有文件名的一部分?

来自分类Dev

检索文件名的一部分

来自分类Dev

PHP使用已知文件名的一部分移动文件

来自分类Dev

剥离文件名的一部分

来自分类Dev

合并大量文件,仅包含文件名的一部分

来自分类Dev

使用 bash/sed 将文件名的一部分添加到 .csv 文件

来自分类Dev

cURL - 使用特定的响应头作为文件名的一部分

来自分类Dev

在 PHP 中分解文件名以使用其中的一部分

来自分类Dev

在文件的标题中插入文件名的一部分

来自分类Dev

如何在 bash 脚本中使用 (basename "${video%.*}") 获取文件名的一部分?

来自分类Dev

根据文件名的一部分搜索和移动文件

来自分类Dev

使用 sed 和模式匹配提取文件名的一部分

来自分类Dev

仅使用文件名的一部分从文件名创建文件夹

Related 相关文章

  1. 1

    bash删除文件名的一部分

  2. 2

    更改文件名grep的一部分或重命名

  3. 3

    Powershell根据文件名的一部分移动文件

  4. 4

    如何使用bash脚本删除文件名的一部分

  5. 5

    重击:替换文件名的一部分

  6. 6

    如何在Java中提取CSV文件的文件名的一部分

  7. 7

    如何在Logrotate上使用日期和时间作为文件名的一部分?

  8. 8

    获取文件名的一部分

  9. 9

    检索文件名的一部分

  10. 10

    JMeter预处理变量作为报告文件名的一部分

  11. 11

    使用node.js脚本重命名文件名的一部分

  12. 12

    提取文件名的一部分

  13. 13

    如何使用bash脚本删除文件名的一部分

  14. 14

    如何在Java中提取CSV文件的文件名的一部分

  15. 15

    Android-使用文件名的一部分检查文件是否存在

  16. 16

    重命名文件,删除文件名bash脚本的一部分

  17. 17

    删除文件夹中所有文件名的一部分?

  18. 18

    检索文件名的一部分

  19. 19

    PHP使用已知文件名的一部分移动文件

  20. 20

    剥离文件名的一部分

  21. 21

    合并大量文件,仅包含文件名的一部分

  22. 22

    使用 bash/sed 将文件名的一部分添加到 .csv 文件

  23. 23

    cURL - 使用特定的响应头作为文件名的一部分

  24. 24

    在 PHP 中分解文件名以使用其中的一部分

  25. 25

    在文件的标题中插入文件名的一部分

  26. 26

    如何在 bash 脚本中使用 (basename "${video%.*}") 获取文件名的一部分?

  27. 27

    根据文件名的一部分搜索和移动文件

  28. 28

    使用 sed 和模式匹配提取文件名的一部分

  29. 29

    仅使用文件名的一部分从文件名创建文件夹

热门标签

归档