如何检查文件是否正在被其他应用程序使用?

2023-11-25

我需要处理一个视频文件,并且需要在打开该文件之前完成该文件。因此,我需要在处理文件之前检查文件是否已打开,但已被另一个进程打开。知道如何检查吗?我正在使用Linux。


如果没有任何额外的宝石,一个稍微浪费的方法可能是:

if %x[lsof -F n].split("\n").grep(/yourfilename/).empty?
  # all clear
else 

end

Or

if system %Q[lsof #{filename}] 
  # still open..
else 
  # all clear
end

或者,忽略我的 hack 建议并使用 gem 来实现此目的:https://github.com/jordansisssel/fosl

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查文件是否正在被其他应用程序使用? 的相关文章

随机推荐

  • Vim:暂时仅显示特定行

    有时 在 Vim 中 我想仅显示文件的特定部分 例如 特定方法 同时隐藏其余部分 这有助于我专注于手头的问题 我想这样做而不实际更改文件 关于如何做到这一点有什么想法吗 欢呼和问候 克拉斯 Similar to the already me
  • 将 C 预处理器转换为 Rust

    我正在将一些 C 代码移植到 Rust 该代码包含很多类似这样的内容 define CONFIG FLAG NUMBER 23 1 define THIS 10 define THAT 11 define THIS AND THAT THI
  • Doctrine2 实体命名空间

    我是 Doctrine2 的新手 想知道如何告诉 Doctrine 我的实体使用哪个命名空间 我当前的配置is this 我的所有实体都位于名称空间 project entity 中 所以 每次我想获取实体 Color 时 我都必须写 em
  • 以特殊格式打印当前 UTC 日期时间

    很简单 但我是 python 新手 我正在尝试以特殊格式打印当前 UTC 日期和时间 Python 2 6 6 import datetime time print time strftime a b d H M S Z Y datetim
  • Inno Setup RegKey存在于64位系统上

    我使用 Inno Setup 创建了一个安装程序 并想使用 Pascal Script 查询注册表 if RegKeyExists HKEY LOCAL MACHINE SOFTWARE Classes Installer UpgradeC
  • 如何在 Flutter 中获取“Ap​​ps Instance Id”

    我想设置Firebase 应用内消息传递在我的扑动应用程序上 首先 它需要FirebaseInstanceId正如所解释的here 这样我就可以测试向我的设备发送消息 然而该文档并没有详细说明如何在 Android 上获取它 尤其是在 fl
  • 删除级联时的 MongoDB DBRef

    MongoDB 有没有办法让外键具有 ON DELETE CASCADE 功能 我知道您可以使用 DBRef 作为一种外键 但是当删除引用指向的集合中的项目时 引用将返回 null 但我希望引用所属的项目被删除 我该怎么做呢 或者我每次删除
  • 错误 1114 (HY000):表“XXX”已满

    我知道这个问题以前被问过 但似乎没有任何帮助 我在 2 3 天前遇到了这个问题 询问服务器支持 他们告诉我必须将 mysql 从 var 移动到 home 那里是我所有的磁盘空间 这就是我所做的 然后我运行插入 一切都很顺利 直到今天 当我
  • 无法在 PDF 中保存阿拉伯语单词 - PDFBox Java

    正在尝试保存Arabic可编辑 PDF 中的单词 它工作得很好English但是当我使用阿拉伯语单词时 我遇到了这个异常 java lang IllegalArgumentException U 0627 在此字体 Helvetica 编码
  • ASP.Net MVC 3.0 Ajax.BeginForm 正在重定向到页面?

    在 ASP Net MVC 3 0 中我使用 Ajax Beginform 并点击 JsonResult 表单成功后我将调用 jQuery 函数 但由于某种原因我的表单重定向到 JsonAction my View using Ajax B
  • Delphi XE中占用大量内存的TStringList对象

    我正在开发一个模拟程序 该程序首先要做的事情之一是读取一个大文件 28 MB 大约 79 000 行 解析每一行 大约 150 个字段 为该对象创建一个类 并将其添加到 TStringList 它还读取另一个文件 该文件在运行期间添加更多对
  • Volley 库请求队列的最大大小是多少

    我在用VolleyAndroid 中的库 我想知道允许使用的队列的最大大小是多少Volley图书馆 我没有发现与此相关的任何内容 据我所知 您需要将网络请求添加到队列中 但我不知道可以将其并行队列的最大大小是多少 RequestQueue
  • MySQL 索引减慢查询速度

    MySQL Server version 5 0 95 Tables All InnoDB 我遇到 MySQL 数据库查询问题 基本上我发现如果我索引一个特定的 varchar 50 字段tag name 我的查询比不索引字段花费的时间更长
  • 如何限制python上的用户输入长度?

    amt float input Please enter the amount to make change for 我希望用户输入美元金额 因此允许 5 个字符 00 00 有没有办法限制它 以便不允许他们输入超过 5 个字符 我不想要这
  • 从 Java 字符串末尾删除行尾字符

    我有一个字符串 我想仅使用 Java 从字符串的最末尾删除行尾字符 foo r nbar r nhello r nworld r n 我想成为 foo r nbar r nhello r nworld 这个问题与问题类似 但不一样59367
  • 错误 C2797:成员初始值设定项列表内的列表初始化

    我当时正在看MVA 的 C 教程我下面提到的代码是由凯特而不是我编写的 然而 她似乎在编译时没有显示任何错误 但在我的例子中 我收到以下错误 错误 1 错误 C2797 NamedRectangle name 列表初始化 内部成员初始值设定
  • AttributeError:使用自定义生成器在 Keras 模型上调用 fit 时,“tuple”对象没有属性“rank”

    我想构建一个具有两个输入的神经网络 用于图像数据和数字数据 所以我为此编写了自定义数据生成器 这train and validation数据框包含 11 列 image name 图像的路径 9个数字特征 target 项目的类 最后一列
  • 如何在Golang中使用COM(组件对象模型)

    我有一个 Windows DLL XA Session dll 文件 但我不知道如何在 golang 中使用它 这是DLL Viewer图片 我想使用ConnectServerCOM 方法 这是我的代码 package main impor
  • 使用对象解构赋值时,为什么属性“name”会转换为字符串? [复制]

    这个问题在这里已经有答案了 Given let obj name 1 console log typeof obj name obj name number 1 Why is name使用时将标识符强制转换为字符串var在对象解构赋值时 l
  • 如何检查文件是否正在被其他应用程序使用?

    我需要处理一个视频文件 并且需要在打开该文件之前完成该文件 因此 我需要在处理文件之前检查文件是否已打开 但已被另一个进程打开 知道如何检查吗 我正在使用Linux 如果没有任何额外的宝石 一个稍微浪费的方法可能是 if x lsof F