|
|
||||
Tips > |
|||||
ファイル属性を SetFileAttributes で設定 |
更新 : 2009/12/09 |
||||
|
|
||
解説: CD-ROMからコピーしたファイルには、リードオンリー属性が付いています。読み込むだけならこのままでもいいのですが、編集したいときには属性を解除する必要があります。 ファイルの属性設定(変更)には、Win32API の SetFileAttributes 関数を使います。この関数は、引数にファイル名のアドレスと設定する属性のアドレスを渡すことで、ファイルの属性を変更できます。 BOOL SetFileAttributes(lpFileName, dwFileAttributes) LPCTSTR lpFileName; //ファイル名のアドレス DWORD dwFileAttributes; // 設定する属性のアドレス 属性のパラメータには、 FILE_ATTRIBUTE_ARCHIVE などのフラグを組み合わせて指定できます。 使用例: 以下の例は、指定ファイルの読み込み専用属性を解除するコードです。 準備として、まずリードオンリー属性のファイルを用意してください。 コンポーネントは Button, OpenDialog, Label をひとつづつ適当に配置すれば ok です。 Button1 をクリックするとダイアログが表示されますので、ファイルを指定してください。 Label1 にパス付きファイル名が現れ、処理が済むと読み込み専用属性が解除された旨のメッセージが表示されます。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if (OpenDialog1->Execute()) { Label1->Caption = OpenDialog1->FileName; SetFileAttributes(OpenDialog1->FileName.c_str(), FILE_ATTRIBUTE_ARCHIVE); ShowMessage("読み込み専用を解除しました。"); } } //------------------------------------------------------------------- 以上の Tips を元に作成したアプリケーション(OffReadOnly v0.0.1)を公開しています。 |