2010-04-22 4 views
4

PowerBuilder에서 파일 함수를 사용하여 모든 디렉토리 (예 : c : \, d : \ 등)에서 .txt 파일을 검색하는 방법은 무엇입니까?Powerbuilder 쿼리

+0

당신이 * * * .txt 인 파일 디렉토리 *를 검색하거나 스캔 찾고

테리, (즉 이러한 프로토 타입과 구조가 BTW, 복사 곳.이다)

행운을 빕니다. 특정 콘텐츠에 대한 디렉토리의 txt 파일? 하나의 디렉토리 또는 하위 트리? PB 버전과 대상 유형은 무엇입니까? – Terry

답변

3

ListBox 컨트롤을 사용하면 지정된 문자열 패턴 (* .txt, myfile.txt, .etc)을 기반으로 파일/디렉토리 목록을 가져올 수 있습니다. 도움말의 DirList 기능을보십시오. 다음은 창에 시각적으로 표시하지 않고 ListBox 컨트롤을 사용하는 방법을 보여주는 here의 예제입니다. 당신이하고있는 모든 파일을 찾는 경우

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) 
+0

DirList가 작동하려면 창에서 컨트롤을 가져야한다는 것은 매우 성가시다. 그것은 특히 NVO에서 일할 때 불필요한 단계를 추가합니다. –

+0

나는 그것을 볼 필요가 없다고 생각한다. 코드에 목록 상자를 추가하고 제거합니다. –

6

그래서, 당신은 listbox.DirList()로이 작업을 수행 할 수 있습니다, 또는 당신은 창 또는 컨트롤에 연결하지 않고이 작업을 수행하려는 경우, 당신을 WinAPI를 함수를 호출 할 수있는 것은이 작업을 수행합니다 :

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이

,536으로 정의된다
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" 

unsignedlong  ul_lowdatetime 
unsignedlong  ul_highdatetime 

사용 방법에 대한 예제가 필요하면 개체 (pfcapsrv.pbl) pfc_n_cst_filesrvunicode.of_DirList()에서 PFC (PowerBuilder Foundation Classes, CodeXchange)를 확인하십시오.