4

PowerBuilder のファイル関数を使用して、任意のディレクトリ (つまり、c:\、d:\ など) で .txt ファイルを検索するにはどうすればよいですか?

4

2 に答える 2

6

したがって、ファイルを探すだけなら、listbox.DirList() でこれを行うことができます。また、ウィンドウやコントロールに縛られずにこれを行いたい場合は、WinAPI 関数を呼び出してこれを行うことができます。 :

Function long FindFirstFileW (ref string filename, ref os_finddata findfiledata) library "KERNEL32.DLL" alias for "FindFirstFileW"
Function boolean FindNextFileW (long handle, ref os_finddata findfiledata) library "KERNEL32.DLL" alias for "FindNextFileW"

os_finddata は次のように定義されます。

unsignedlong        ul_fileattributes
os_filedatetime     str_creationtime
os_filedatetime     str_lastaccesstime
os_filedatetime     str_lastwritetime
unsignedlong        ul_filesizehigh
unsignedlong        ul_filesizelow
unsignedlong        ul_reserved0
unsignedlong        ul_reserved1
character       ch_filename[260]
character       ch_alternatefilename[14]

os_filedatetime は次のように定義されます。

unsignedlong        ul_lowdatetime
unsignedlong        ul_highdatetime

これらの使用方法の例が必要な場合は、オブジェクト (pfcapsrv.pbl)pfc_n_cst_filesrvunicode.of_DirList () のPFC (PowerBuilder Foundation Classes、CodeXchangeで入手可能) を参照してください。(これらのプロトタイプと構造はここからコピーされます。)

幸運を、

テリー

于 2010-04-30T18:13:21.890 に答える
3

コントロールを使用ListBoxして、特定の文字列パターン (*.txt、myfile.txt、.etc) に基づいてファイル/ディレクトリのリストを取得できます。DirListヘルプで関数を見てください。そして、ここからの例は、ウィンドウに視覚的に配置せずに ListBox コントロールを使用する方法を示しています。

string ls_files[]
window lw_1
listbox llb_1
int li_items, li_i

Open( lw_1 )

lw_1.openUserObject( llb_1 )

llb_1.DirList( sFileSpec, uFileType )

li_items = llb_1.TotalItems()

For li_i = 1 to li_items

ls_files[ li_i ] = llb_1.Text( li_i )

Next

lw_1.closeUserObject( llb_1 )

Close( lw_1 )
于 2010-04-22T20:40:46.107 に答える