既存と新規のファイルの間にハードリンクを確立          <TOP>


CreateHardLink 既存ファイルと新規ファイルの間にNTFSハードリンクを確立


ハードリンク

ファイルに別名を設定し,その別名で基のファイルにアクセスできるようにする「リンク」機能の1つ

 

'================================================================
'= 既存と新規のファイルの間にハードリンクを確立
'=    (CreateHardLink.bas)
'================================================================
#include "Windows.bi"

' 既存ファイルと新規ファイルの間にNTFSハードリンクを確立
Declare Function Api_CreateHardLink& Lib "kernel32" Alias "CreateHardLinkA" (ByVal lpFileName$, ByVal lpExistingFileName$, ByRef lpSecurityAttributes As Any)

Var Shared Text1 As Object
Var Shared Button1 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var sSave As String
    Var Ret As Long
    
    'Helloと入力したファイルを作成
    Open "test1.txt" For Output As #1
        Print #1, "Hello ";
    Close #1
    
    'ハードリンク(同じファイルを示す2番目のファイル名)を作成
    Ret = Api_CreateHardLink("test2.txt", "test1.txt", ByVal 0)

    'Worldと入力した2番目のファイルを作成
    Open "test2.txt" For Append As #1
        Print #1, "World"
    Close #1
    
    'bufferを作成
    sSave = String$(Len("test2.txt"), 0)
    
    '最初のファイルを読む
    Open "test1.txt" For Input As #1
        Input #1, sSave
    Close #1
    
    '結果を表示 'Hello World'
    Text1.SetWindowText sSave
    
    'ファイルを削除
    Kill "test1.txt"
    Kill "test2.txt"
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End