MENU

Autoit|ショートカットを作成し、元ファイルと更新日時を合わせる

今回は、指定したフォルダー内のファイルとフォルダーのショートカットを作成し、元ファイルと更新日時を合わせるサンプルコードを紹介します。

元ファイルと更新日時を合わせるメリットは、通常ファイルとフォルダーを更新日時順で並べるとファイルとフォルダーで別れてしまいます。

ですので、ファイルとフォルダーを混在した状態で更新日時順に並べることはできません。

このような場合にショートカットが便利です。

ファイルのショートカットであろうと、フォルダーのショートカットであろうと、ショートカットはファイルとして扱われますので、ファイルとフォルダーを混在した状態で更新日時順に並べることが可能になります。

主に使用する関数:

_FileListToArray(指定したフォルダー内のファイルやフォルダーを一覧表示)

_PathSplit(パスをドライブ、ディレクトリ、ファイル名、ファイル拡張子の部分に分割)

FileCreateShortcut(ファイルまたはフォルダーのショートカットを作成)

FileGetTime(ファイルの日時の情報を取得)

FileSetTime(ファイルの日時を変更)

目次

サンプルコードと解説

#include <File.au3>


$Target_Folder = "C:\Windows"
$Shortcut_Folder = @DesktopDir & "\ショートカット置き場"

_CreateShortcut()

Func _CreateShortcut()
    Local $sDrive = "", $sDir = "", $sFilename = "", $sExtension = "", $aPathSplit = ""

    If Not FileExists($Shortcut_Folder) Then DirCreate($Shortcut_Folder)

    Local $List = _FileListToArray($Target_Folder)

    For $i = 1 To $List[0]
        $aPathSplit = _PathSplit($Target_Folder & "\" & $List[$i], $sDrive, $sDir, $sFilename, $sExtension)

        FileCreateShortcut($Target_Folder & "\" & $List[$i], $Shortcut_Folder & "\" & $sFilename)
        FileSetTime($Shortcut_Folder & "\" & $sFilename & ".lnk", FileGetTime($Target_Folder & "\" & $List[$i], 0, 1))
    Next
EndFunc   ;==>_CreateShortcut

解説

変数 $Target_Folder にはショートカットの元となるファイルが存在するフォルダーを指定します。

変数 $Shortcut_Folder には作成するショートカットを保存するフォルダーを指定します。

If Not FileExists($Shortcut_Folder) Then DirCreate($Shortcut_Folder) では、指定されたショートカットを保存するフォルダーが存在するかを判断し、存在しなければ作成します。

FileCreateShortcut 関数でショートカットを作成する際、作成先のフォルダーが存在しなければ作成できません。

Local $List = _FileListToArray($Target_Folder) でショートカットの元となるファイルが存在するフォルダー内のファイルとフォルダーを取得します。

1 次元配列:
    $aArray[0] = 返されたファイル\フォルダーの数
    $aArray[1] = 1 番目のファイル\フォルダー
    $aArray[2] = 2 番目のファイル\フォルダー
    $aArray[3] = 3 番目のファイル\フォルダー
    $aArray[n] = n 番目のファイル\フォルダ

FileCreateShortcut($Target_Folder & “\” & $List[$i], $Shortcut_Folder & “\” & $sFilename) で、取得したファイルとフォルダーのショートカットを作成します。

FileSetTime($Shortcut_Folder & “\” & $sFilename & “.lnk”, FileGetTime($Target_Folder & “\” & $List[$i], 0, 1)) で、ショートカットの元となるファイルとフォルダーの更新日時を取得し、ショートカットの更新日時を取得した日時に変更します。

注意事項

FileCreateShortcut 関数は、同じ名前のショートカットが既に存在する場合は上書きされます。

上書きをしたくない場合は条件を追加してください。

便利な使い方

変数 $Target_Folder と 変数 $Shortcut_Folder にそれぞれフォルダーを指定し、コンパイルしておきます。

これを指定した時間に自動で実行するように タスクスケジューラ に登録をしておくと便利です。

あるいは While…Wend, Sleep を使用してプログラム内で 1時間ごとに繰り返すなどしても良いですね。

これにより常に同期されるようになります。

ショートカットをおすすめする理由は、誤って削除しても元ファイルが削除されないためです。

また、ファイルとフォルダーを混在した状態で更新日時順に並べることが可能だからです。

常にショートカットからファイルやフォルダーにアクセスするようにしておけば、管理がしやすくなります。

ご自身でコードの追加や変更をして使いやすくしてみてください。

ショートカットアイコンの矢印を削除するツール「DelShortcutArrow」

この記事が役立ったと感じたら、ぜひシェアをお願いします
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Windows 技!では、みなさまのお役に立てる情報を発信していきます。

カテゴリー

アーカイブ

コメント

コメントする

目次