Subversion Repositories spk

Rev

Rev 121 | Rev 125 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 121 Rev 124
Line 351... Line 351...
351
}
351
}
352
 
352
 
353
Utils::CStringList CDirIO::dirList(Utils::String dir, Utils::String filePattern) const
353
Utils::CStringList CDirIO::dirList(Utils::String dir, Utils::String filePattern) const
354
{
354
{
355
	Utils::CStringList files;
355
	Utils::CStringList files;
-
 
356
	dirList(files, dir, filePattern);
-
 
357
	return files;
-
 
358
}
-
 
359
bool CDirIO::dirList(Utils::CStringList &files, Utils::String dir, Utils::String filePattern) const
356
 
360
{
357
	dir = parseDir(dir);
361
	dir = parseDir(dir);
358
	if ( dir.empty() )
362
	if ( dir.empty() )
359
		return files;
363
		return false;
360
 
364
 
361
	dir = dir.findReplace("\\", "/");
365
	dir = dir.findReplace("\\", "/");
362
	if (filePattern.empty())
366
	if (filePattern.empty())
363
		dir += "/*";
367
		dir += "/*";
364
	else
368
	else
365
	{
369
	{
366
		dir += "/";
370
		dir += "/";
367
		dir += filePattern;
371
		dir += filePattern;
368
	}
372
	}
369
	dir = dir.findReplace("//", "/");
373
	dir = dir.findReplace("//", "/");
370
 
374
 
371
#ifdef _WIN32
375
#ifdef _WIN32
372
	dir = dir.findReplace("/", "\\");
376
	dir = dir.findReplace("/", "\\");
373
 
377
 
374
	WIN32_FIND_DATA data;
378
	WIN32_FIND_DATA data;
375
	TCHAR buf[5000];
379
	TCHAR buf[5000];
376
	wsprintf(buf, L"%hs", dir.c_str());
380
	wsprintf(buf, L"%hs", dir.c_str());
377
 
381
 
378
	HANDLE h = FindFirstFile(buf, &data);
382
	HANDLE h = FindFirstFile(buf, &data);
379
	if ( h != INVALID_HANDLE_VALUE)
383
	if ( h != INVALID_HANDLE_VALUE)
380
	{
384
	{
381
		std::wstring ws(data.cFileName);
385
		std::wstring ws(data.cFileName);
382
		std::string s(ws.begin(), ws.end());
386
		std::string s(ws.begin(), ws.end());
Line 394... Line 398...
394
			if ( checkFile != "." && checkFile != ".." )
398
			if ( checkFile != "." && checkFile != ".." )
395
				files.pushBack(checkFile);
399
				files.pushBack(checkFile);
396
		}
400
		}
397
 
401
 
398
		FindClose(h);
402
		FindClose(h);
-
 
403
		return true;
399
	}
404
	}
-
 
405
	return false;
400
#else
406
#else
401
	DIR *dir;
407
	DIR *dir;
402
	struct dirent *ent;
408
	struct dirent *ent;
403
	if ((dir = opendir(dir.c_str())) != NULL) {
409
	if ((dir = opendir(dir.c_str())) != NULL) {
404
		while ((ent = readdir(dir)) != NULL) {
410
		while ((ent = readdir(dir)) != NULL) {
Line 406... Line 412...
406
			if (checkFile != "." && checkFile != "..")
412
			if (checkFile != "." && checkFile != "..")
407
				files.pushBack(checkFile);
413
				files.pushBack(checkFile);
408
		}
414
		}
409
		closedir(dir);
415
		closedir(dir);
410
	}
416
	}
-
 
417
	return true;
411
#endif//_WIN32
418
#endif//_WIN32
412
 
419
 
413
	return files;
-
 
414
}
420
}
415
 
421
 
416
CyStringList *CDirIO::DirList(CyString dir, CyString filepattern)
422
CyStringList *CDirIO::DirList(CyString dir, CyString filepattern)
417
{
423
{
418
	dir = ParseDir(dir);
424
	dir = ParseDir(dir);