Перебор содержимого папки в X++
			Запись от Kabardian размещена 28.02.2012 в 12:08
			
		
		
		
		Нашел замечательную статью, где описано как с помощью WinAPI из X++ перебрать содержимое папки.
		
	X++:
static void FindFile(Args _args) { #File FileName fullFileName(FileName _path, FileName _fileName) { FileName pathName; FileName fileName; FileName fileExtension; ; [pathName,fileName,fileExtension] = fileNameSplit(_fileName); return _path + '\\' + fileName + fileExtension; } void findFiles(FileName _path, FileName _fileName, boolean _inclSubDir = true, FileName _prefix = fullFileName(_path,_fileName)) { FileName fileName; int hdl; ; setprefix(_prefix); if (WinAPI::folderExists(_path)) { [hdl,fileName] = WinApi::findFirstFile(fullFileName(_path,_fileName)); while (fileName) { if (WinAPI::fileExists(fullFileName(_path,fileName))) info(fileName); fileName = WinApi::findNextFile(hdl); } WinApi::findClose(hdl); if (_inclSubDir) { [hdl, fileName] = WinAPI::findFirstFile(_path+'\\'+#AllFiles); while (fileName) { if (strlwr(fileName) != strlwr(_fileName) && strlwr(fileName) != strlwr('.') && strlwr(fileName) != strlwr('..') && WinAPI::pathExists(fullFileName(_path,fileName)) ) findFiles(fullFileName(_path,fileName), _fileName, _inclSubDir, fileName); fileName = WinApi::findNextFile(hdl); } WinApi::findClose(hdl); } } } findFiles('c:\\Program Files','*.doc'); }
Всего комментариев 3
	
	Комментарии
- 
	 Нашел лаконичный код для тех же целей, в предыдущем обнаружился баг — чтобы файлы нашлись нужно обязательно указывать расширение. Нашел лаконичный код для тех же целей, в предыдущем обнаружился баг — чтобы файлы нашлись нужно обязательно указывать расширение.
 
 X++:static void showFileName(Args _args) { int handle; FilePath filePath; FileName FileName; ; filepath = "c:\\windows"; [handle,filename] = WinAPI::findFirstFile(filepath + "\\*.*"); while (filename != "") { info(filepath + "\\" + filename); filename = WinAPI::findNextFile(handle); } WinAPI::findClose(handle); } Запись от Kabardian размещена 28.02.2012 в 12:33   
- 
	 см. также System.IO.Directory.GetFiles() см. также System.IO.Directory.GetFiles()Запись от gl00mie размещена 28.02.2012 в 20:47   
- 
	 Только при использовании нужно учесть, что данный при вызове при пакетных обработках вызывает ошибку Только при использовании нужно учесть, что данный при вызове при пакетных обработках вызывает ошибку
 "сеанс попытался вызвать метод, который доступен только на клиенте."Запись от AlGol размещена 05.11.2013 в 17:30   
 Обновил(-а) AlGol 05.11.2013 в 19:08





 
					
				
				
		
