Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <dirent.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <dirent.h>
- #include <stdio.h>
- #include <sys/stat.h>
- #include <string.h>
- #include <ctype.h>
- //для нахождения размера
- long int findSize(const char d_name[128]){
- struct stat st;
- printf ("stat of %s\n",d_name);
- if(stat(d_name,&st)==0)
- return(st.st_size);
- else {
- perror ("Error of stat");
- return -1;
- }
- }
- //для разворота строки в
- void reverse(char s[]){
- int i, j;
- char c;
- for (i = 0, j = strlen(s)-1; i<j; i++, j--) {
- c = s[i];
- s[i] = s[j];
- s[j] = c;
- }
- }
- //преобразование чисел в строку
- void itoa(int n, char s[]){
- int i, sign;
- if((sign = n) < 0)
- n = -n;
- i = 0;
- do{
- s[i++] = n % 10 + '0';
- }while((n /= 10) > 0);
- if(sign < 0)
- s[i++] = '-';
- s[i] = '\0';
- reverse(s);
- }
- //
- int katt(char g[128]){
- DIR *dir;
- struct dirent *sd;
- long int size = 0;
- char pr = '_';
- dir = opendir(g);
- printf ("opendir: %s\n",g);
- if(dir == NULL){
- printf("Japan");
- exit(1);
- }
- char chc[128];
- while((sd=readdir(dir)) != NULL){
- int ii;
- int nn;
- for(ii=0;ii < strlen(sd->d_name);ii++){
- if(isalpha(sd->d_name[ii])) nn++;
- }
- int i;
- char cd[128];
- for(i=0;i<128;i++){
- cd[i] = '\0';
- }
- //sizeof(sd);
- for(ii=0;;ii++){
- if(sd->d_name[ii] == '\0') {//printf("%d\n",sd->d_type);
- break;}
- cd[ii] = sd->d_name[ii];
- }
- int lk = 0;
- char sf[128];
- for(i=0;;i++){
- sf[i] = g[i];
- if(g[i] == '\0') break;
- }
- for(;;i++){
- sf[i] = cd[lk];
- if(cd[lk] == '\0')break;
- lk++;
- }
- size = findSize(sf);
- itoa(size,chc);
- int jq = 0;
- if(cd[0] != '.' & sd->d_type == 4){
- jq = 1;
- }
- int n = 0;
- char hh2[128];
- for(ii=0;;ii++){
- if(cd[ii] == '\0') break;
- hh2[ii] = cd[ii];
- }
- int f = 0;
- for(i=0;i < strlen(hh2);i++){
- if(isalpha(hh2[i])) n++;
- }
- char hh22[128];
- char hh1[128];
- int check = 0;
- for(i=0;;i++){
- if(hh2[i] == '\0')break;
- hh22[i] = hh2[i];
- if(hh22[i] == '_'){
- check = 1;
- break;
- }
- }
- char hg[128];
- if(check == 1){
- i++;
- for(i=i;;i++){
- hh1[f] = hh2[i];
- f++;
- if(i==n) break;
- }
- for(i=0;;i++){
- hg[i] = hh22[i];
- if(hg[i] == '_') break;
- }
- int gi = 0;
- i++;
- for(i=i++;;i++){
- if(chc[gi] == '\0') break;
- hg[i] = chc[gi];
- gi++;
- }
- gi = 0;
- for(i=i++;;i++){
- if(hh1[gi] == '\0') break;
- hg[i] = hh1[gi];
- gi++;
- }
- }
- //printf ("size=%ld, check=%d\n",size,check);
- if(size != -1)
- if(check == 1){
- //printf ("rename %s to %s\n",sd->d_name,hg);
- rename(sf, hg);
- check = 0;
- }
- else
- printf("You cool!\n");
- }
- closedir(dir);
- return 0;
- }
- //
- int main(){
- DIR *dir;
- struct dirent *sd;
- long int size = 0;
- char pr = '_';
- dir = opendir(".");
- if(dir == NULL){
- printf("Japan");
- exit(1);
- }
- char chc[128];
- while((sd=readdir(dir)) != NULL){
- size = findSize(sd->d_name);
- itoa(size,chc);
- int ii;
- int nn;
- for(ii=0;ii < strlen(sd->d_name);ii++){
- if(isalpha(sd->d_name[ii])) nn++;
- }
- int i;
- char cd[128];
- for(i=0;i<128;i++){
- cd[i] = '\0';
- }
- //sizeof(sd);
- for(ii=0;;ii++){
- if(sd->d_name[ii] == '\0') {//printf("%s\n",dir);
- break;}
- cd[ii] = sd->d_name[ii];
- }
- int jq = 0;
- if(cd[0] != '.' & sd->d_type == 4){
- jq = 1;
- char k[128];
- k[0]='.';
- k[1]='/';
- int t = 0;
- for(i = 2;;i++){
- k[i] = cd[t];
- if(cd[t] == '\0') break;
- t++;
- }
- katt(k);
- }
- int n = 0;
- char hh2[128];
- for(ii=0;;ii++){
- if(cd[ii] == '\0') break;
- hh2[ii] = cd[ii];
- }
- int f = 0;
- for(i=0;i < strlen(hh2);i++){
- if(isalpha(hh2[i])) n++;
- }
- char hh22[128];
- char hh1[128];
- int check = 0;
- for(i=0;;i++){
- if(hh2[i] == '\0')break;
- hh22[i] = hh2[i];
- if(hh22[i] == '_'){
- check = 1;
- break;
- }
- }
- char hg[128];
- if(check == 1){
- i++;
- for(i=i;;i++){
- hh1[f] = hh2[i];
- f++;
- if(i==n) break;
- }
- for(i=0;;i++){
- hg[i] = hh22[i];
- if(hg[i] == '_') break;
- }
- int gi = 0;
- i++;
- for(i=i++;;i++){
- if(chc[gi] == '\0') break;
- hg[i] = chc[gi];
- gi++;
- }
- gi = 0;
- for(i=i++;;i++){
- if(hh1[gi] == '\0') break;
- hg[i] = hh1[gi];
- gi++;
- }
- }
- printf ("size=%ld, check=%d\n",size,check);
- if(size != -1)
- if(check == 1){
- printf ("rename %s to %s\n",sd->d_name,hg);
- rename(sd->d_name, hg);
- check = 0;
- }
- else
- printf("You cool!\n");
- }
- closedir(dir);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement