gpt4 book ai didi

python - python可以检测快捷方式文件(.lnk)是否不再有效吗?

转载 作者:可可西里 更新时间:2023-11-01 11:23:13 28 4
gpt4 key购买 nike

当您尝试打开不再有效的快捷方式文件 (.lnk) 时,Windows 会提示您:“此快捷方式已被更改或移动,因此此快捷方式将不再正常工作。”是否有 python 代码可用于检测此类快捷方式是否不再有效?

当我运行以下代码来检索不再有效的快捷方式的目标路径时,我没有收到任何类型的错误。代码仍然打印不再存在的目标文件的路径:

import win32com.client

shell = win32com.client.Dispatch('WScript.Shell')
shortcut = shell.CreateShortcut(shortcutpath_cur)
target = shortcut_cur.Targetpath

print(target)

有时快捷方式不再有效,即使它指向的文档仍然存在。在那种情况下,我不能使用 os.path.exists()os.path.isfile() 因为它们会返回 True .

最佳答案

您可以通过尝试检查文件路径是否有现有文件来做到这一点。 SO 上有一个解决方案,其中包含许多方法: How do I check whether a file exists without exceptions?

如果您检查文件是否存在于快捷方式指定的路径中,您就可以检测快捷方式本身是否有效,并为它执行您自己的程序。

这是来自上面链接的引述,您可以使用它来执行此操作:

"如果你不打算立即打开文件,你可以使用 os.path.isfile

如果路径是现有的常规文件,则返回 True。这遵循符号链接(symbolic link),因此对于同一路径,islink() 和 isfile() 都可以为真。

import os.path
os.path.isfile(fname)

如果您需要确定它是一个文件。"

如果由于某种原因该文件存在但您的快捷方式不起作用,则这将不起作用。然后,您可以使用 try: 打开文件和 except: 所有可能出现的错误。有时,由于权限不足或 target 不再有效,快捷方式将无法使用。

如果文件存在但无法通过快捷方式打开,则可能是快捷方式文件本身、目标文件、操作系统错误/故障或权限不足的问题。

关于python - python可以检测快捷方式文件(.lnk)是否不再有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55423715/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com