私はこのファイルhttps://github.com/HaarigerHarald/omxiv/blob/master/omxiv.cを修正しようとしていますが、これは関数getImageFilesInDirだと思います。アルファベット順にアルファベット順(img05.png、img04.png、img03.png、img02.png、img01.png)の順番でディレクトリにファイルを戻さないように変更する必要があるので、イメージビューアが表示されます私の最初のイメージは最高の番号でファイルします(私の場合はimg05.png)アルファベット順にファイルをソート
私はfor(i=0; i-1; i--)
のようなものを試しましたが、役に立たなかったです。 どうすればいいですか?
static int getImageFilesInDir(char ***list, const char* path){
struct dirent **namelist;
int imageNum;
imageNum = scandir(path, &namelist, imageFilter, alphasort);
if (imageNum < 0)
return imageNum;
else {
*list=malloc(sizeof(char*) *imageNum);
int i;
for(i=0; i<imageNum; i++) {
if(strcmp(path, ".") == 0 || strcmp(path, "./") == 0){
(*list)[i]= malloc(strlen(namelist[i]->d_name)+1);
strcpy((*list)[i], namelist[i]->d_name);
}else{
if(strrchr(path, '/')- path != strlen(path)-1){
(*list)[i]= malloc(strlen(path)+strlen(namelist[i]->d_name)+2);
strcpy((*list)[i],path);
(*list)[i][strlen(path)]='/';
strcpy((*list)[i]+strlen(path)+1,namelist[i]->d_name);
}else{
(*list)[i]= malloc(strlen(path)+strlen(namelist[i]->d_name)+1);
strcpy((*list)[i],path);
strcpy((*list)[i]+strlen(path),namelist[i]->d_name);
}
}
free(namelist[i]);
}
free(namelist);
}
return imageNum;
}
(これはCと私の最初のタッチである)
[mcve]または[SSCCE(Short、Self Contained、Correct Example)]を使用して**質問を編集してください(http://sscce.org) – NathanOliver
独自の比較コールバック関数'alphasort'を置き換えます。 'scandir()'のRTFMです。 – alk
また、返された名前リスト配列内の項目の順序を逆順にすることもできます。 – FredK