python能检测出快捷方式文件(.lnk)是否不再工作吗?

2024-06-16 10:35:40 发布

您现在位置:Python中文网/ 问答频道 /正文

当您试图打开不再工作的快捷方式文件(.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()或{},因为它们将返回True。在


Tags: 文件代码路径client类型target目标windows
1条回答
网友
1楼 · 发布于 2024-06-16 10:35:40

可以通过尝试检查文件路径是否有现有文件来完成此操作。这里有一个解决方案,其中包含许多方法: How do I check whether a file exists without exceptions?

如果检查文件是否存在于快捷方式指定的路径上,则可以检测快捷方式本身是否可以工作,并为其执行自己的过程。在

下面是上面链接中的一段引语,您可以使用它来完成此操作:

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

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

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

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

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

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

相关问题 更多 >