メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

MDF添付ファイルの操作

この例では、MDF ファイルに添付ファイルを追加する方法、MDF ファイルから添付ファイルを削除する方法、および MDF ファイルに埋め込まれた添付ファイルをディスクに保存する方法を示します。この例で使用されている MDF ファイル VehicleData.mf4 には現在、ReadMe.txt という名前の添付ファイルが 1 つ埋め込まれています。

バージョン 4.0 以降の MDF ファイルには、複数の添付ファイルを含めることができます。添付ファイルは、MDF ファイルに物理的に埋め込むことも、ファイル パスと名前によって外部参照することもできます。違いは、埋め込み添付ファイルは MDF ファイルのサイズを増加させますが、外部添付ファイルは増加させないことです。この例ではデモンストレーションのために .txt ファイルを使用していますが、MDF ファイルに他の種類のファイルを添付することもできます。

添付ファイルに関連するファイルメタデータを調べる

添付ファイルに関連するファイル メタデータを調べるには、MDF ファイル名を指定して mdfInfo を呼び出し、返されたオブジェクトの Attachment プロパティを照会します。MDF ファイルには、現在、ReadMe.txt という名前の添付ファイルが 1 つ埋め込まれています。

info = mdfInfo("VehicleData.mf4");
info.Attachment
ans=1×7 table
        Name        Comment      Type          MIMEType         Size    EmbeddedSize               MD5CheckSum            
    ____________    _______    ________    _________________    ____    ____________    __________________________________

    "ReadMe.txt"      ""       Embedded    "application/txt"     7           7          "9166BA27E54335BA1043A5FF023E8F4E"

MDF ファイルに埋め込み添付ファイルを追加する

現在の作業ディレクトリに HelloWorld.txt という名前のテキスト ファイルを作成します。

fileID = fopen("HelloWorld.txt", "w");
fprintf(fileID, "Hello, World!\n");
fclose(fileID);

type 関数を使用してファイルの内容を表示します。

type("HelloWorld.txt")
Hello, World!

HelloWorld.txt を MDF ファイル VehicleData.mf4 の添付ファイルとして追加しますが、これには MDF ファイルを変更する権限が必要です。まず、MDF ファイルへの書き込みアクセス権があるかどうかを確認します。そうでない場合は、MDF ファイルを書き込み可能にします。

[~, values] = fileattrib("VehicleData.mf4");
if ~values.UserWrite
    fileattrib("VehicleData.mf4", "+w")
end

オプション引数 Embeddedtrue に設定して関数 mdfAddAttachment を使用します。このオプションは、添付ファイルが MDF ファイルに物理的に埋め込まれるかどうかを決定します。既定値は false です。

mdfAddAttachment("VehicleData.mf4", "HelloWorld.txt", Embedded=true)

埋め込まれた添付ファイルが正常に追加されたことを確認するには、添付ファイルに関連するファイル メタデータを調べます。2 番目の添付ファイルは埋め込み添付ファイルであるため、SizeEmbeddedSize と等しいことに注意してください。

info = mdfInfo("VehicleData.mf4");
info.Attachment
ans=2×7 table
          Name          Comment      Type          MIMEType         Size    EmbeddedSize               MD5CheckSum            
    ________________    _______    ________    _________________    ____    ____________    __________________________________

    "ReadMe.txt"          ""       Embedded    "application/txt"      7           7         "9166BA27E54335BA1043A5FF023E8F4E"
    "HelloWorld.txt"      ""       Embedded    "application/txt"     14          14         "BEA8252FF4E80F41719EA13CDF007273"

MDFファイルに外部添付ファイルを追加する

myFolder という名前のサブディレクトリを作成し、このサブディレクトリ内に HelloWorld10.txt という名前のテキスト ファイルを作成します。

mkdir myFolder
fileID = fopen(fullfile("myFolder", "HelloWorld10.txt"), "w");
for ii = 1:10
    fprintf(fileID, "Hello, World! %d\n", ii);
end
fclose(fileID);

type 関数を使用してファイルの内容を表示します。

type(fullfile("myFolder", "HelloWorld10.txt"))
Hello, World! 1
Hello, World! 2
Hello, World! 3
Hello, World! 4
Hello, World! 5
Hello, World! 6
Hello, World! 7
Hello, World! 8
Hello, World! 9
Hello, World! 10

関数 mdfAddAttachment を使用して、.txt ファイルへの相対パスで HelloWorld10.txt を MDF ファイル VehicleData.mf4 の添付ファイルとして追加します。オプション引数 Embedded が指定されていないため、.txt ファイルが外部リンク添付ファイルとして追加されます。添付ファイルに関する情報を追加するには、オプションの引数 Comment を指定します。

mdfAddAttachment("VehicleData.mf4", fullfile("myFolder", "HelloWorld10.txt"), Comment="Repeat hello world for 10 times")

外部添付ファイルが正常に追加されたことを確認するには、添付ファイルに関連するファイル メタデータを調べます。3 番目の添付ファイルの場合、Size はゼロ以外ですが、EmbeddedSize は外部添付ファイルであるためゼロであることに注意してください。

info = mdfInfo("VehicleData.mf4");
info.Attachment
ans=3×7 table
               Name                             Comment                   Type          MIMEType         Size    EmbeddedSize               MD5CheckSum            
    ___________________________    _________________________________    ________    _________________    ____    ____________    __________________________________

    "ReadMe.txt"                   ""                                   Embedded    "application/txt"      7           7         "9166BA27E54335BA1043A5FF023E8F4E"
    "HelloWorld.txt"               ""                                   Embedded    "application/txt"     14          14         "BEA8252FF4E80F41719EA13CDF007273"
    "myFolder/HelloWorld10.txt"    "Repeat hello world for 10 times"    External    "application/txt"    161           0         "99B4FDE65B883C034D1997A6DFD27700"

MDF ファイルから添付ファイルを削除する

mdfRemoveAttachment 関数を使用して、追加されたばかりの HelloWorld.txt という名前の埋め込み添付ファイルを削除します。

mdfRemoveAttachment("VehicleData.mf4", "HelloWorld.txt")

埋め込まれた添付ファイルが正常に削除されたことを確認するには、添付ファイルに関連するファイル メタデータを調べます。

info = mdfInfo("VehicleData.mf4");
info.Attachment
ans=2×7 table
               Name                             Comment                   Type          MIMEType         Size    EmbeddedSize               MD5CheckSum            
    ___________________________    _________________________________    ________    _________________    ____    ____________    __________________________________

    "ReadMe.txt"                   ""                                   Embedded    "application/txt"      7          7          "9166BA27E54335BA1043A5FF023E8F4E"
    "myFolder/HelloWorld10.txt"    "Repeat hello world for 10 times"    External    "application/txt"    161          0          "99B4FDE65B883C034D1997A6DFD27700"

同様に、先ほど追加された HelloWorld10.txt という名前の外部添付ファイルを削除します。削除する添付ファイルを正確に識別するには、指定した添付ファイル名が info.Attachment に表示される添付ファイル名と完全に一致する必要があります。

attachmentName = info.Attachment.Name(2)
attachmentName = 
"myFolder/HelloWorld10.txt"
mdfRemoveAttachment("VehicleData.mf4", attachmentName)

埋め込まれた添付ファイルが正常に削除されたことを確認するには、添付ファイルに関連するファイル メタデータを調べます。

info = mdfInfo("VehicleData.mf4");
info.Attachment
ans=1×7 table
        Name        Comment      Type          MIMEType         Size    EmbeddedSize               MD5CheckSum            
    ____________    _______    ________    _________________    ____    ____________    __________________________________

    "ReadMe.txt"      ""       Embedded    "application/txt"     7           7          "9166BA27E54335BA1043A5FF023E8F4E"

MDF ファイルから埋め込み添付ファイルを保存する

関数 mdfSaveAttachment を使用して、残っている 1 つの埋め込み添付ファイル (ReadMe.txt という名前) を現在の MATLAB ® 作業フォルダーに保存します。

mdfSaveAttachment("VehicleData.mf4", Attachment="ReadMe.txt")