Finding files using FindFile/FindNextFile
-
Hi, I use the FindFile(sCurrImgPath) and FindNextFile functions to search for files of the format file*.x (where the * is a number) in a directory. The problem is that these functions return the file names in the following order (for example): file1.x file10.x file11.x file2.x file20.x file3.x etc... and I need the files in the order: file1.x file2.x file3.x file10.x file20.x etc... How can I do this? -- modified at 2:21 Thursday 9th March, 2006
-
Hi, I use the FindFile(sCurrImgPath) and FindNextFile functions to search for files of the format file*.x (where the * is a number) in a directory. The problem is that these functions return the file names in the following order (for example): file1.x file10.x file11.x file2.x file20.x file3.x etc... and I need the files in the order: file1.x file2.x file3.x file10.x file20.x etc... How can I do this? -- modified at 2:21 Thursday 9th March, 2006
That is how it will be because when comparing strings
file10
is less thanfile2
so it comes up in the order. If you have file numbering likefile01
,file02
, you can avoid these problems. But you cannot expect this.
Nibu thomas Software Developer
-
That is how it will be because when comparing strings
file10
is less thanfile2
so it comes up in the order. If you have file numbering likefile01
,file02
, you can avoid these problems. But you cannot expect this.
Nibu thomas Software Developer
Nibu thomas wrote:
If you have file numbering like file01, file02, you can avoid these problems. But you cannot expect this.
I don't have the files numbered this way, and I can't change their names... is there a way to sort the names of the files after I get all of the file names?
-
Nibu thomas wrote:
If you have file numbering like file01, file02, you can avoid these problems. But you cannot expect this.
I don't have the files numbered this way, and I can't change their names... is there a way to sort the names of the files after I get all of the file names?
CComboBox m_Combo; m_Combo.Create(WS_CHILD,CRect(0,0,0,0),this,1); m_Combo.Dir(DDL_ARCHIVE|DDL_DIRECTORY, _T("*.*")); and you can inactive sort in the propery page -- modified at 3:20 Thursday 9th March, 2006
-
CComboBox m_Combo; m_Combo.Create(WS_CHILD,CRect(0,0,0,0),this,1); m_Combo.Dir(DDL_ARCHIVE|DDL_DIRECTORY, _T("*.*")); and you can inactive sort in the propery page -- modified at 3:20 Thursday 9th March, 2006
-
I don't understand what you meant... did you mean to add to my project a combo box that will list the files, and then use it's sort property to sort the names?
CComboBox m_Combo; CString m_str; m_Combo.Create(WS_CHILD,CRect(0,0,0,0),this,1); m_Combo.Dir(DDL_ARCHIVE, _T("*.*")); for (int i=0;i
-
Hi, I use the FindFile(sCurrImgPath) and FindNextFile functions to search for files of the format file*.x (where the * is a number) in a directory. The problem is that these functions return the file names in the following order (for example): file1.x file10.x file11.x file2.x file20.x file3.x etc... and I need the files in the order: file1.x file2.x file3.x file10.x file20.x etc... How can I do this? -- modified at 2:21 Thursday 9th March, 2006
-
CComboBox m_Combo; CString m_str; m_Combo.Create(WS_CHILD,CRect(0,0,0,0),this,1); m_Combo.Dir(DDL_ARCHIVE, _T("*.*")); for (int i=0;i
-
2 possibilities : if you can rename the files, change
file1.x
,file2.x
, tofile01.x
,file02.x
, etc... if you're not allowed to change the file names, then firstly search for"file?.x"
files, then when you've got them, search for"file??.x"
...I can't rename the files... so I'll have to go for the second possibility.. :) but FindFile doesn't accept question marks, it accepts * to signify a wild card. so when I write file*.x and file **.x, it gives the same result... Is there a way to get all of the files that have one number after the file, then find all the files that have two numbers after the file, etc.?
-
I can't rename the files... so I'll have to go for the second possibility.. :) but FindFile doesn't accept question marks, it accepts * to signify a wild card. so when I write file*.x and file **.x, it gives the same result... Is there a way to get all of the files that have one number after the file, then find all the files that have two numbers after the file, etc.?
Why don't you get the files in a linked list and then sort the list? In that case you can sort the list in any type of order you need. Basically, the suggested solution with the combobox does the same, but you can keep it all in your own hands just as easily. Suggestion for a linked list: typedef struct _st_list ST_LIST; struct_st_list { CString m_strFilename; ST_LIST * m_Next; }; ST_LIST * MyList = (ST_LIST *)NULL; ST_LIST * NewList (void) { ST_LIST *r, *l; r = new ST_LIST; r->m_Next = (ST_LIST *)NULL; if ((l = MyList) == (ST_LIST *)NULL) MyList = r; else { while (l->m_Next != (ST_LIST *)NULL) l = l->m_Next; l->m_Next = r; } return r; } William
-
I can't rename the files... so I'll have to go for the second possibility.. :) but FindFile doesn't accept question marks, it accepts * to signify a wild card. so when I write file*.x and file **.x, it gives the same result... Is there a way to get all of the files that have one number after the file, then find all the files that have two numbers after the file, etc.?