「Susanoo」のリクエストで、「ショートカットファイルD&Dしたら登録できるようにしたい」っというものがありまして、どうやったら行けるかなーっと考えていたんですが、、、
Qt(PySide)で簡単にできるようだったので、ご紹介したいと思います!(`・ω・´)ゞ
QFileInfo
QFileInfoは、システムに依存しないファイル情報をゲットするのに大変便利なクラスです。例えば、ファイルサイズを調べたり、所有権、アクセス権を調べたりできます。
今回注目したのは、「isSymLink」と「symLinkTarget」です(`・ω・´)ゞ
isSymLink
このメソッドは、指定されたファイルがシンボリックリンク(Windowsの場合はショートカット)であるか調べることができます!
Windowsの場合は、拡張子が「lnk」であるかで調べられそうでしたが、Windows10にはフツーにシンボリックリンクがあるのでメソッドを使って判断したほうが良さそうです(`・ω・´)ゞ
from PySide import QtCore file = QtCore.QFileInfo(r'C:\Autodesk Maya 2018.lnk') print file.isSymLink() # True file = QtCore.QFileInfo(r'C:\maya.exe') print file.isSymLink() # True
symLinkTarget
このメソッドは、シンボリックリンク(Windowsの場合はショートカット)が指す「ファイル」か「ディレクトリ」の絶対パスを取得できます。
from PySide import QtCore file = QtCore.QFileInfo(r'C:\Autodesk Maya 2018.lnk') print file.symLinkTarget() # C:/Program Files/Autodesk/Maya2018/bin/maya.exe file = QtCore.QFileInfo(r'C:\maya.exe') print file.symLinkTarget() # C:/Program Files/Autodesk/Maya2018/bin/maya.exe
「isSymLink」と「symLinkTarget」を使えば、簡単に目的のファイルやディレクトリに辿り着けそうです!(*´ω`*)b
一日が24時間じゃ、やりたいことやりきれない!!