//--------------------------------------------------------------------------- // TVPInitializeBaseSystems //--------------------------------------------------------------------------- void TVPInitializeBaseSystems() { // set system archive delimiter tTJSVariant v; if(TVPGetCommandLine(TJS_W("-arcdelim"), &v)) TVPArchiveDelimiter = ttstr(v)[0]; // set default current directory { char drive[MAXDRIVE]; char dir[MAXDIR]; fnsplit(_argv[0], drive, dir, NULL, NULL); ttstr curdir(ttstr(drive) + ttstr(dir)); if(curdir.GetLastChar() != TJS_W('\\')) curdir += TJS_W('\\'); TVPSetCurrentDirectory(curdir); } // load message map file bool load_msgmap = GetSystemSecurityOption("disablemsgmap") == 0; if(load_msgmap) { const tjs_char name_msgmap [] = TJS_W("msgmap.tjs"); if(TVPIsExistentStorage(name_msgmap)) TVPExecuteStorage(name_msgmap, NULL, false, TJS_W("")); } }
//------------------------------------------------------------------------------ static int CopySelect(void) //Копирование выбранных файлов { char Name_Dir[260]; if(Get_Name_Dir((Lan+94)->msg, Name_Dir, 0) < 0) return -1;//Запрос имени папки // if(Get_Name_Dir("Укажите диск или папку для записи", Name_Dir) < 0) return -1; //Запрос имени папки UpdateWindow(MainWin); //Восстановили окно после диалога выбора файла InitProgressBar = InitProgressBar1_2; //Функция прогресса для одного файла из группы ProgressBar = ProgressBar2; Close_ProgressBar = Close_ProgressBar1_2; char Driv[MAXDRIVE], Dir[MAXPATH], Name[MAXFILE], Ext[MAXEXT], Path[MAXPATH]; fnsplit(Name_Dir, Driv, Dir, Name, Ext); lstrcpy(Path, Driv); lstrcat(Path, "\\"); DWORD SectorsPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters; if(GetDiskFreeSpace(Path, &SectorsPerCluster, &BytesPerSector, &NumberOfFreeClusters, &TotalNumberOfClusters) == 0) return ErrorSys1((Lan+46)->msg); //return ErrorSys1("Системная ошибка при запросе емкости диска."); BytesPerClaster = SectorsPerCluster * BytesPerSector; //Число байт в кластере numAllInCl = 0; //Суммарное число кластеров во всех копируемых файлах numAllFi = 0; //Число копируемых файлов num_T_Fi = 0; //Номер текущего копируемого файла numAllOutCl = 0; //Суммарный число выходных кластеров int l = lstrlen(Name_Dir) - 1; if(*(Name_Dir + l) == '\\') *(Name_Dir + l) = 0; //Для имени диска косая всегда есть if(Calc_SizeAllFile() < 0) return -1; //Вычисления для копирование выбранных файлов на диск ПК DWORDLONG allSize = numAllOutCl * BytesPerClaster; int ret = DiskFreeSpaceEx_F(Name_Dir, allSize); //Проверка свободного места if(ret < 0) return -1; if(ret == 1) return CopySelect(); //Копирование выбранной файлов на диск ПК (повторный запуск для запроса нового пути) InitProgressBar2_2(numAllInCl, (Lan+122)->msg); //Функция прогресса для нескольких файлов // if(Get_Name_Dir("Укажите диск или папку для записи", Name_Dir) < 0) return -1; //Запрос имени папки ret = Copy_AllFiles(Name_Dir); //Копирование выбранных файлов на диск ПК Close_ProgressBar2_2(); return ret;
//------------------------------------------------------------------------------ int Change_Dir_For_File(char *NameF) //Изменение каталога (внесение нового файла) { for(; ns_Dir<4*sClSec; ns_Dir++) //По всем возможным записям в одном кластере каталога (В каждом секторе 4 записи) { if((s_Kat + ns_Dir)->pf.type == 0) break; //Конец записей каталога WORD NameDel = *((WORD*)&(s_Kat + ns_Dir)->Name); if(NameDel == 0xE500 && (s_Kat + ns_Dir)->pf.ClSt == 0) break;//Это удаленное имя т.е. свободная строка } if(ns_Dir >= 4*sClSec) return Error1((Lan+181)->msg); //"В каталоге нет места для новой записи." ZeroMemory(s_Kat+ns_Dir, sizeof(One_Str_Cat)); //Все очистили char Driv[MAXDRIVE], Dir[MAXPATH], Name[MAXFILE], Ext[MAXEXT]; fnsplit(NameF, Driv, Dir, Name, Ext); NameToKat(Name, Ext, s_Kat+ns_Dir); //Формирование имени файла в Unicode SYSTEMTIME sysTime; FILETIME TimeF; //Дата и время входного файла FileTimeToLocalFileTime(&Time_inF, &TimeF); FileTimeToSystemTime(&TimeF, &sysTime); (s_Kat+ns_Dir)->pf.type = 32; //Тип файл (s_Kat+ns_Dir)->pf.ClSt = nCl_1; //Номер кластера начала файла (s_Kat+ns_Dir)->pf.Sec = sysTime.wSecond; (s_Kat+ns_Dir)->pf.Min = sysTime.wMinute; (s_Kat+ns_Dir)->pf.Hour = sysTime.wHour; (s_Kat+ns_Dir)->pf.Day = sysTime.wDay; (s_Kat+ns_Dir)->pf.Mon = sysTime.wMonth; (s_Kat+ns_Dir)->pf.Year = sysTime.wYear; (s_Kat+ns_Dir)->pf.SizeF = Size_inF.QuadPart; Add_Item_To_Tree(NameF); //Добавления строки в дерево
void main(int argc, char **argv) { static char base1[64]; static char base2[64]; static char full[128]; ffblk ff; if (argc < 2) { printf("ra4c <file> ...\n"); return; } while (argc > 1) { fnsplit(argv[1], base2, base1, NULL, NULL); strcat(base2, base1); if (findfirst(argv[1], &ff, FA_RDONLY | FA_ARCH | FA_HIDDEN) != 0) { printf("no file find. \n"); return; } do { strcpy(full, base2); strcat(full, ff.ff_name); printf("--> %s \n", full); replace(full, base2); } while (findnext(&ff) == 0); argc--; argv++; } return; }
//--------------------------------------------------------------------------- void __fastcall TMainForm::mnuSaveClick(TObject *Sender) { if( RichEditReport->Lines->Count == 0 ) { MsgBoxStop( "I can't find anything to save !."); return; } // Grab the graphic's filename and change to "txt" extension { char szFile[ MAXFILE ]; char szExt[ MAXEXT ]; char szDest[ MAXPATH ]; String as; fnsplit( OpenDialog1->FileName.c_str(), NULL, NULL, szFile, szExt ); memset( szDest, 0, MAXPATH ); strcat( szDest, szFile ); strcat( szDest, "\." ); strcat( szDest, "txt" ); as = szDest; // Initially create a text file of the same name as the graphic // but with "txt" extension SaveDialog1->FileName = as; } if( !SaveDialog1->Execute() ) return; // Given up hey ? RichEditReport->Lines->SaveToFile( SaveDialog1->FileName ); }
void static names( const char *data, char *lookaside , char *quotesUsed ) { char drive[FILENAME_MAX], dir[FILENAME_MAX], file[FILENAME_MAX], ext[FILENAME_MAX]; /*--------------------------------------------------------------------*/ /* Build the lookaside file name from the data file name */ /*--------------------------------------------------------------------*/ #ifdef __TURBOC__ fnsplit( data, drive, dir, file, ext); fnmerge( lookaside, drive, dir, file, ".las"); fnmerge( quotesUsed, drive, dir, file, ".qus"); #else _splitpath( (char *) data, drive, dir, file, ext); _makepath( lookaside, drive, dir, file, ".las"); _makepath( quotesUsed, drive, dir, file, ".qus"); #endif /* __TURBOC__ */ } /* names */
void set_directory( void ) { char drive[MAXDRIVE], dir[MAXDIR], name[MAXFILE], ext[MAXEXT]; /* build cup_dir like this -> c:\edit\cuwriter */ fnsplit( progname, drive, dir, name, ext ); sprintf( cup_dir, "%s%s", drive, dir ); cup_dir[strlen( cup_dir ) - 1] = '\0'; /* clear \ */ }
char *fname::ext(const char *e) { char drive[MAXDRIVE]; char dir [MAXDIR]; char file [MAXFILE]; fnsplit (e,drive,dir,file,buf); return buf; };
char *fname::jname(const char *jn) { char drive[MAXDRIVE]; char dir [MAXDIR]; char ext [MAXEXT]; fnsplit (jn,drive,dir,buf,ext); return buf; };
/* Here's how we do it. Rename CONFIGFILENAME to *.CBK. Then, read line-by-line from it, and write line-by-line to the new file, except for changing the line which contains VARNAME. Returns 1 for success. */ int changevar(char *configfilename, char *varname, char *value) { char drive[4]; char path[64]; char name[10]; char ext[6]; char oldname[80]; FILE *i,*o; char linebuf[256]; int found; fnsplit(configfilename,drive,path,name,ext); strcpy(oldname,drive); strcat(oldname,path); strcat(oldname,name); strcat(oldname,".CBK"); remove(oldname); if (rename(configfilename,oldname)) return 0; i=fopen(oldname,"r"); if (i==NULL) return 0; o=fopen(configfilename,"w"); if (o==NULL) return 0; found=0; while (!feof(i)) { fgets(linebuf,256,i); if (feof(i)) break; stripln(linebuf); if (comment(linebuf) || notvar(linebuf,varname)) fprintf(o,"%s\n",linebuf); else { fprintf(o,"%s = %s\n",varname,value); found=1; } } if (!found) fprintf(o,"%s = %s\n",varname,value); fclose(i); fclose(o); return 1; }
char *fname::path(const char *p) { char drive[MAXDRIVE]; char dir [MAXDIR]; char file [MAXFILE]; char ext [MAXEXT]; fnsplit (p,drive,dir,file,ext); strcpy(buf,drive); strcat(buf,dir); return buf; };
char *fname::name(const char *n) { char drive[MAXDRIVE]; char dir [MAXDIR]; char file [MAXFILE]; char ext [MAXEXT]; fnsplit (n,drive,dir,file,ext); strcpy(buf,file); strcat(buf,ext); return buf; };
static int Mk_NewName(char *NameF) //Автоматическое формирование нового имени { char Driv[MAXDRIVE+3], Dir[MAXPATH], Name[MAXFILE], Ext[MAXEXT]; fnsplit(NameF, Driv, Dir, Name, Ext); int l = lstrlen(Name); for(DWORD i=1; i<0xFFFFFFFF; i++) { sprintf(Name+l, ".%03d", i); fnmerge(NameF, Driv, Dir, Name, Ext); if(CtrlFileYesNo(NameF) == 0) return 0; //Файла нет - Проверка наличия файла } return 0; }
//--------------------------------------------------------------------------- AnsiString __fastcall CIniFile::GetFileNameWithoutExt(char *strFileName) { char drive[MAXDRIVE]; char dir[MAXDIR]; char file[MAXFILE]; char ext[MAXEXT]; int flags; flags=fnsplit(strFileName,drive,dir,file,ext); return file; }
int main(void) { char arg[81], drive[81], dir[81], fname[81], ext[81]; fputs("> ", stdout); fflush(stdout); gets(arg); printf("`%s' (%x): `%s' `%s' `%s' `%s'\n", arg, fnsplit(arg, drive, dir, fname, ext), drive, dir, fname, ext); return 0; }
//------------------------------------------------------------------------------ static int Add_Item_To_Tree(char *NameF) //Добавления строки в дерево { char Driv[MAXDRIVE], Dir[MAXPATH], Name[MAXFILE], Ext[MAXEXT]; fnsplit(NameF, Driv, Dir, Name, Ext); if((s_Kat+ns_Dir)->pf.type == 48) //Это папка { lstrcat(Name, Ext); //У папки расширения нет как такового *Ext = *(Ext+1) = 0; } int l = lstrlen(Name); if(l > 38) *(Name + 38) = 0;
//--------------------------------------------------------------------------- AnsiString __fastcall CIniFile::GetFileNameWithNewPath(char *strFileName,char *strPathName) { char drive[MAXDRIVE]; char dir[MAXDIR]; char file[MAXFILE]; char ext[MAXEXT]; int flags; flags=fnsplit(strFileName,drive,dir,file,ext); AnsiString strName; strName.sprintf("%s%s.%s",strPathName,file,ext); return strName; }
listbatch() { char s[80],drive[MAXDRIVE],dir[MAXDIR],filename[MAXFILE],ext[MAXEXT],*s1; long d; int i,totalfp; i=totalt=totalfp=0; if(que.files==0) { nl(); pl("4No files in batch."); return; } nl(); nl(); pl("2 Name Cost # DL Uploader Time4"); pl(" ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄ ÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄ"); while(i < que.files) { d=((((que.fstruct[i].bytes)+127)/128)) * (1620.0) / ((baud)); if(i < 9) print("%d. ",i+1); else print("%d.",i+1); fnsplit(que.fstruct[i].name,drive,dir,filename,ext); print("4[2%-8s",filename); print("%-3s",ext); if(fstruct.filepoints==0) print("4] [2Free"); if(fstruct.status!=0 && que.fstruct[i].filepoints!=0) { print("4] [3 %-3d",que.fstruct[i].filepoints); totalfp+=que.fstruct[i].filepoints; } print("4] [3%-3d",que.fstruct[i].timesdl); print("4] [3 %-15s ",que.fstruct[i].uploader); sprintf(s,"%ld",d/60); totalt+=d/60; print("4] [3%-4s4]",s); nl(); i++; } nl(); print("Total: %d file(s) %d %ld mins",que.files,totalfp,totalt); nl(); }
//--------------------------------------------------------- void __fastcall CEVision::LoadPatMatch(char *strFileName,int nIndex,EMatch &theMatch) { char drive[MAXDRIVE]; char dir[MAXDIR]; char file[MAXFILE]; char ext[MAXEXT]; int flags; flags=fnsplit(strFileName,drive,dir,file,ext); AnsiString strName; strName.sprintf("%s%s%s_%d.mch",drive,dir,file,nIndex); theMatch.Load( strName.c_str()); }
void main(int Argc, char *Argv[]) { int i; int autre_entree; char lecteur[MAXDRIVE]; char repertoire[MAXDIR]; char nom_fichier[MAXFILE]; char extension[MAXEXT]; if(Argc==1) { printf("Syntaxe : GO <Lecteur>:<R‚pertoire>"); exit(0); } else printf("Go Directory\n"); niveau=1; autre_entree=1; strcpy(Argv[1],strupr(Argv[1])); fnsplit(Argv[1],lecteur,repertoire,nom_fichier,extension); strcpy(chemin_cours,lecteur); strcat(nom_fichier,extension); probleme=Init_repert(); while(autre_entree) { if(!probleme && !autre_repert()) { derniere_entree[niveau++]=entree_actuelle; strcat(chemin_cours,"\\"); strcat(chemin_cours,entree_actuelle.ff_name); if(strcmp(entree_actuelle.ff_name,nom_fichier)==0) { setdisk((int)lecteur[0]-65); chdir(chemin_cours); autre_entree=0; break; } probleme=Init_repert(); } else { if(niveau==1) { printf("Aucune entr‚e trouv‚e ..."); autre_entree=0; break; } *strrchr(chemin_cours,'\\')='\0'; entree_actuelle=derniere_entree[--niveau]; probleme=findnext(&entree_actuelle); } } }
int fullsplit( const char* path ) { #ifdef _WIN32 // FIXME: 2008 Upgrades needed here? #if defined( _MSC_VER ) && ( _MSC_VER <= 1310 ) // up to VS2003 _splitpath( path, temp_drive, temp_dir, temp_fname, temp_ext ); #else // VS2005 using MS STL, boooooo _splitpath_s( path, temp_drive, MAXDRIVE, temp_dir, MAXDIR, temp_fname, MAXFILE, temp_ext, MAXEXT ); #endif return 0; #else return fnsplit( path, temp_drive, temp_dir, temp_fname, temp_ext ); #endif }
streng *os2_filespec( tsd_t *TSD, cparamboxptr parms ) { streng *result=NULL ; streng *inpath=NULL; char format = '?' ; #if defined(DJGPP) char fdrive[MAXDRIVE], fdir[MAXDIR], fname[MAXFILE], fext[MAXEXT]; #elif defined(__EMX__) char fdrive[_MAX_DRIVE], fdir[_MAX_DIR], fname[_MAX_FNAME], fext[_MAX_EXT]; #elif defined(HAVE__SPLITPATH2) char fpath[_MAX_PATH2], *fdrive=NULL, *fdir=NULL, *fname=NULL, *fext=NULL; #elif defined(HAVE__SPLITPATH) char fdrive[_MAX_PATH], fdir[_MAX_PATH], fname[_MAX_PATH], fext[_MAX_PATH]; #else char fpath[REXX_PATH_MAX+5],*fdrive=NULL,*fdir=NULL,*fname=NULL,*fext=NULL; #endif checkparam( parms, 2, 2 , "FILESPEC" ) ; format = getoptionchar( TSD, parms->value, "FILESPEC", 1, "DNP", "?" ) ; inpath = Str_dupstrTSD( parms->next->value ) ; #if defined(DJGPP) fnsplit( inpath->value, fdrive, fdir, fname, fext ); #elif defined(__EMX__) _splitpath( inpath->value, fdrive, fdir, fname, fext ); #elif defined(HAVE__SPLITPATH2) _splitpath2( inpath->value, fpath, &fdrive, &fdir, &fname, &fext ); #elif defined(HAVE__SPLITPATH) _splitpath( inpath->value, fdrive, fdir, fname, fext ); #else my_splitpath2( inpath->value, fpath, &fdrive, &fdir, &fname, &fext ); #endif switch( format ) { case 'D': result = Str_creTSD( fdrive ); break; case 'N': result = Str_makeTSD( strlen( fname) + strlen( fext ) ); Str_catstrTSD( result, fname ); Str_catstrTSD( result, fext ); break; case 'P': result = Str_creTSD( fdir ); break; } FreeTSD( inpath ); return result; }
void get_programname (char const *argv0) { #ifdef __MSDOS__ char name [MAXFILE]; fnsplit (argv0, NULL, NULL, name, NULL); programname = strdup (name); #else char *p; p = strrchr (argv0, my_PATH_SEP); if (p) programname = strdup (p + 1); else programname = strdup (argv0); #endif }
int filebkup( const char *input ) { char fdrive[FILENAME_MAX]; char fpath[FILENAME_MAX]; char fname[FILENAME_MAX]; char ftype[FILENAME_MAX]; char backup[FILENAME_MAX]; if ( !bflag[F_BACKUP] ) /* Are we to not back it up? */ return 1; /* Yes --> Report we did not */ #ifdef __TURBOC__ fnsplit( input, fdrive, fpath, fname, ftype ); if ( E_backup == NULL ) strcpy(ftype, ".bak" ); else if ( *E_backup == '.' ) strcpy( ftype, E_backup ); else { *ftype = '.'; strcpy( ftype + 1 , E_backup ); } /* else */ fnmerge( backup, fdrive, fpath, fname, ftype ); #else if ( E_backup == NULL ) E_backup = ".bak"; _splitpath( (char *) input , fdrive, fpath, fname, ftype ); _makepath( backup , fdrive, fpath, fname, E_backup ); #endif /* __TURBOC__ */ REMOVE( backup ); if (rename( input, backup )) { printerr( backup ); printmsg(1,"Unable to rename %s to %s", input, backup ); return 1; } /* if (rename( input, backup )) */ else return 0; } /* filebkup */
char *replaceExt( char *fileName, char *nExt, Boolean force ) { char dir[MAXPATH]; char name[MAXFILE]; char ext[MAXEXT]; char drive[MAXDRIVE]; char buffer[MAXPATH]; ostrstream os(buffer, MAXPATH); fnsplit(fileName, drive, dir, name, ext); if (force || (strlen(ext) == 0)) { os << dir << name << nExt << ends; return os.str(); } else return fileName; }
int Folder_ToHDD(void) //Запись папок на диск LG { char NameDir[256], Driv[MAXDRIVE], Dir[MAXPATH], Ext[MAXEXT]; if(Get_Name_Dir((Lan+186)->msg, NameDir, 1) < 0) return -1;//Запрос имени папки fnsplit(NameDir, Driv, Dir, NameFoFi, Ext); lstrcat(NameFoFi, Ext); //У папки расширения нет как такового if(Create_New_Folder_ToHDD() < 0) return -1; //Cоздание папки на диске LG ClStDir = nCl_1; //Номер кластера каталога в который выполняется запись, т.е. вновь созданный каталог spisF = (char *)MyAllocMem(MAX_SP + MAX_NAME_S * sizeof(DWORD)); if(spisF == NULL) return -1; //Нет памяти pozNameF = (DWORD*)(spisF + MAX_SP); //Таблица смещений к именам файла в списке lstrcpy(spisF, NameDir); int sm = lstrlen(spisF) + 1; int n = 0; if(Make_Spis(&n) < 0) return -1; //Создание списка файлов if(n == 0) return 0; //Нет ни одного имени в списке return Copy_File_ToHDD(sm); //Запись нескольких файлов на HDD рекордера }
int getname(char textst[],unsigned x,unsigned y,unsigned maxlen,char attr) { int i; char drv[MAXDRIVE],dir[MAXDIR],name[MAXFILE],ext[MAXEXT]; char textst2[80]; do { i = getstring(textst,x,y,maxlen,attr,ENGUPCASE); } while ((i != YES) && (i != ESCKEY) && (i != NO)); if (i == YES) { fnsplit(textst,drv,dir,name,ext); fnmerge(textst2,drv,dir,name,ext); if (strcmp(textst,textst2) != 0) { blockmsg(10); dispstrhgc("������������żԴ��Ҵ ! �� <ESC> ���ͷӧҹ���",27,10,REVERSEATTR); while (bioskey(0) != ESCKEY); return(ESCKEY); } } return(i); }
Boolean validFileName( const char *fileName ) { static const char * const illegalChars = ";,=+<>|\"[]\\"; char path[MAXPATH]; char dir[MAXDIR]; char name[MAXFILE]; char ext[MAXEXT]; fnsplit( fileName, path, dir, name, ext ); strcat( path, dir ); if( *dir != EOS && !pathValid( path ) ) return False; if( strpbrk( name, illegalChars ) != 0 || strpbrk( ext+1, illegalChars) != 0 || strchr( ext+1, '.' ) != 0 ) return False; return True; }
Boolean TFileEditor::saveFile() { char drive[MAXDRIVE]; char dir[MAXDIR]; char file[MAXFILE]; char ext[MAXEXT]; if( (editorFlags & efBackupFiles) != 0 ) { fnsplit( fileName, drive, dir, file, ext ); char backupName[MAXPATH]; fnmerge( backupName, drive, dir, file, backupExt ); unlink( backupName ); rename( fileName, backupName ); } ofstream f( fileName, ios::out | ios::binary ); if( !f ) { editorDialog( edCreateError, fileName ); return False; } else { writeBlock( f, buffer, curPtr ); writeBlock( f, buffer+curPtr+gapLen, bufLen-curPtr ); if( !f ) { editorDialog( edWriteError, fileName ); return False; } else { modified = False; update(ufUpdate); } } return True; }
static int Make_Spis(int *n) //Создание списка файлов { char NameF[256]; char Driv[MAXDRIVE], Dir[MAXPATH], Name[MAXFILE], Ext[MAXEXT]; WIN32_FIND_DATA Data; HANDLE File; int l = lstrlen(spisF) + 1; lstrcpy(NameF, spisF); lstrcat(NameF, "\\*.*"); if((File = FindFirstFile(NameF, &Data)) == INVALID_HANDLE_VALUE) return -1; //Файл не найден (папка пустая) for(;;) { fnsplit(Data.cFileName, Driv, Dir, Name, Ext); if(!(lstrcmp(Data.cFileName, ".") == 0 || //Имя файла "." нас не интересует lstrcmp(Data.cFileName, "..") == 0)) //Имя файла ".." нас не интересует { //lstrcpy(NameF+l, Data.cFileName); //Сделали полное имя с путем if((Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0) //Текущее имя это вложенная папка { //Если внутри папки есть другие папки, то повторить все для внутренний папок, т.е. писать все дерево } else { OneExt *ExtE = ExtEn + pExt[prFolder]; for(int i=0; i<nExt[prFolder]; i++) if(lstrcmpi(ExtE[i], Ext) == 0) { lstrcpy(spisF+l, Data.cFileName); l += lstrlen(spisF+l) + 1; (*n)++; break; } } } if(FindNextFile(File, &Data) == 0) if(GetLastError() == ERROR_NO_MORE_FILES) break; } FindClose(File); *(spisF+l) = 0; return 0; }