ファイラ

  ディレクトリをリストビューの先頭に集める



ファイラスケルトンのままでは、ディレクトリとファイルがバラバラに表示されています。そこで、ディレクトリのみをリストビューの先頭に集める事を考えます。

リストビューのデータは、もともとは LboxEnumFile( Listbox->hWnd, 0 ) によってリストボックスにセットされているものですから、リストボックスからリストビューに転送する時に、まずディレクトリのみを転送し、再度リストボックスを最初から読み直してディレクトリ以外を転送すれば実現できます。その判断は4番目の項目で行います



  ディレクトリを [] で囲ってディレクトリである事を解りやすくする



ただセットするだけでは、ディレクトリ変更する場合の文字列として使っているので、その場合は元に戻す必要があります。もし szBuffer の中に "[ABC]" というディレクトリ名が入っていた場合、まず最後の1文字を 0x00 に変更します

  
szBuffer[lstrlen(szBuffer)-1] = 0x00;
  

その後、szBuffer + 1 を Fs.IsDirectory と Fs.ChangeDirectory の引数として渡します




  タイトルに現在のディレクトリをセットする

LoadFile の最初でカレントディレクトリを取得して、タイトルにセットします。 LboxWin オブシェクトを使うので、InitWndProc の LoadFile は、関数の最後に実行するようにします、



  ディレクトリ以外の行をダブルクリックしたらそのファイルを実行する

LboxTool オブジェクトに Execute メソッドがあります。第一引数にコマンドラインを指定して第二引数には NULL を指定します。コマンドラインは "実行ファイル名" "実行されるパス" という形式にします。ダブルクォーテーションも必要です。

実行ファィル名の取得は、LboxWin オブジェクトから、Executable メソッドを実行して取得します。但し、Executable メソッドの戻り値が false ならば、該当する実行プログラムは定義されていないので何もしないで下さい



  ドライブとディレクトリの変更

LboxCommdlg オブジェクトの GetFolderName メソッドを使用します。これは、ダイアログが表示されるので選択した場合は true が返ります。その場合、ディレクトリパスが取得されるので、その文字列で LboxFileSystem の ChangeDirectory メソッドを実行します。

ドライブが変更された場合は、LboxInifile オブジェクトを使用して変更される前のディレクトリを保存しておき、次回ドライブのみの変更がされた時に使用してそのディレクトリをカレントにします。また、アプリケーションが終了する時のディレクトリも保存し、次回実行時に復帰させます



  ファイルのコピー

LboxFileSystem の オブジェクトの Copy メソッドか ShellCopy メソッドを使用します。ディレクトリごとコピーしたい場合は ShellCopy を使用します。

ShellCopy メソッドには二種類あり、一つは対象ファイルがひとつのみです。とかしもう一つはリストボックスを使用して複数のファイルが指定できるようになっています

また、ドラッグドロップ対応すれば、エクスプローラからファイルをコピーできます



  ファイルの削除

LboxFileSystem の オブジェクトの Copy メソッドか ShellDelete メソッドを使用します。対象ファイルをフルパスで指定すると、ゴミ箱への移動が可能です。



  ファイル単位にシステムの小さなアイコンを表示させる

  
まず、イメージリストオブジェクトを作成して、システムイメージリストを取得します

Imglist = new LboxImagelist();
Imglist->CreateSystemFile( );
  

  
そのイメージリストをリストビューに実装します

Lview->SetImageList( Imglist );
  

  
LoadFile 関数の行追加の直後でイメージをセットします

Lview->SetImage(
	Lview->nCurrentRow,
	0,
	Fs.SmallIconIndex( Lview->Token[0] )
);
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ