Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2020
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.74 KB | None | 0 0
  1. #include <dirent.h>
  2. #include <stdlib.h>
  3. #include <sys/types.h>
  4. #include <dirent.h>
  5. #include <stdio.h>
  6. #include <sys/stat.h>
  7. #include <string.h>
  8. #include <ctype.h>
  9.  
  10. //для нахождения размера
  11. long int findSize(const char d_name[128]){
  12.     struct stat st;
  13.     printf ("stat of %s\n",d_name);
  14.     if(stat(d_name,&st)==0)
  15.     return(st.st_size);
  16.     else {
  17.     perror ("Error of stat");
  18.     return -1;
  19.     }
  20. }
  21.  
  22. //для разворота строки в
  23. void reverse(char s[]){
  24.     int i, j;
  25.     char c;
  26.  
  27.     for (i = 0, j = strlen(s)-1; i<j; i++, j--) {
  28.     c = s[i];
  29.     s[i] = s[j];
  30.     s[j] = c;
  31.     }
  32. }
  33.  
  34. //преобразование чисел в строку
  35. void itoa(int n, char s[]){
  36.     int i, sign;
  37.  
  38.     if((sign = n) < 0)
  39.     n = -n;
  40.     i = 0;
  41.     do{
  42.     s[i++] = n % 10 + '0';
  43.     }while((n /= 10) > 0);
  44.  
  45.     if(sign < 0)
  46.     s[i++] = '-';
  47.     s[i] = '\0';
  48.     reverse(s);
  49. }
  50.  
  51. //
  52. int katt(char g[128]){
  53.     DIR *dir;
  54.     struct dirent *sd;
  55.     long int size = 0;
  56.     char pr = '_';
  57.     dir = opendir(g);
  58.     printf ("opendir: %s\n",g);
  59.     if(dir == NULL){
  60.     printf("Japan");
  61.     exit(1);
  62.     }
  63.  
  64.     char chc[128];
  65.  
  66.     while((sd=readdir(dir)) != NULL){
  67.    
  68.     int ii;
  69.     int nn;
  70.     for(ii=0;ii < strlen(sd->d_name);ii++){
  71.         if(isalpha(sd->d_name[ii])) nn++;
  72.     }
  73.     int i;
  74.     char cd[128];
  75.     for(i=0;i<128;i++){
  76.         cd[i] = '\0';
  77.     }
  78.     //sizeof(sd);
  79.     for(ii=0;;ii++){
  80.         if(sd->d_name[ii] == '\0') {//printf("%d\n",sd->d_type);
  81.         break;}
  82.         cd[ii] = sd->d_name[ii];
  83.     }
  84.  
  85.     int lk = 0;
  86.     char sf[128];
  87.     for(i=0;;i++){
  88.         sf[i] = g[i];
  89.         if(g[i] == '\0') break;
  90.     }
  91.     for(;;i++){
  92.         sf[i] = cd[lk];
  93.         if(cd[lk] == '\0')break;
  94.         lk++;
  95.     }
  96.  
  97.     size = findSize(sf);
  98.     itoa(size,chc);
  99.     int jq = 0;
  100.     if(cd[0] != '.' & sd->d_type == 4){
  101.         jq = 1;
  102.     }
  103.  
  104.     int n = 0;
  105.     char hh2[128];
  106.  
  107.     for(ii=0;;ii++){
  108.         if(cd[ii] == '\0') break;
  109.         hh2[ii] = cd[ii];
  110.     }
  111.  
  112.  
  113.     int f = 0;
  114.     for(i=0;i < strlen(hh2);i++){
  115.         if(isalpha(hh2[i])) n++;
  116.     }
  117.     char hh22[128];
  118.     char hh1[128];
  119.     int check = 0;
  120.     for(i=0;;i++){
  121.         if(hh2[i] == '\0')break;
  122.         hh22[i] = hh2[i];
  123.         if(hh22[i] == '_'){
  124.         check = 1;
  125.         break;
  126.         }
  127.     }
  128.     char hg[128];
  129.     if(check == 1){
  130.         i++;
  131.         for(i=i;;i++){
  132.         hh1[f] = hh2[i];
  133.         f++;
  134.         if(i==n) break;
  135.         }
  136.  
  137.  
  138.         for(i=0;;i++){
  139.         hg[i] = hh22[i];
  140.         if(hg[i] == '_') break;
  141.         }
  142.         int gi = 0;
  143.         i++;
  144.         for(i=i++;;i++){
  145.         if(chc[gi] == '\0') break;
  146.         hg[i] = chc[gi];
  147.         gi++;
  148.         }
  149.         gi = 0;
  150.         for(i=i++;;i++){
  151.         if(hh1[gi] == '\0') break;
  152.         hg[i] = hh1[gi];
  153.         gi++;
  154.         }
  155.     }
  156.     //printf ("size=%ld, check=%d\n",size,check);
  157.    
  158.    
  159.     if(size != -1)
  160.         if(check == 1){
  161.         //printf ("rename %s to %s\n",sd->d_name,hg);
  162.         rename(sf, hg);
  163.         check = 0;
  164.         }
  165.         else
  166.         printf("You cool!\n");
  167.     }
  168.  
  169.     closedir(dir);
  170.     return 0;
  171. }
  172. //
  173.  
  174. int main(){
  175.     DIR *dir;
  176.     struct dirent *sd;
  177.     long int size = 0;
  178.     char pr = '_';
  179.     dir = opendir(".");
  180.     if(dir == NULL){
  181.     printf("Japan");
  182.     exit(1);
  183.     }
  184.  
  185.     char chc[128];
  186.  
  187.     while((sd=readdir(dir)) != NULL){
  188.     size = findSize(sd->d_name);
  189.     itoa(size,chc);
  190.     int ii;
  191.     int nn;
  192.     for(ii=0;ii < strlen(sd->d_name);ii++){
  193.         if(isalpha(sd->d_name[ii])) nn++;
  194.     }
  195.     int i;
  196.     char cd[128];
  197.     for(i=0;i<128;i++){
  198.         cd[i] = '\0';
  199.     }
  200.     //sizeof(sd);
  201.     for(ii=0;;ii++){
  202.         if(sd->d_name[ii] == '\0') {//printf("%s\n",dir);
  203.         break;}
  204.         cd[ii] = sd->d_name[ii];
  205.     }
  206.  
  207.     int jq = 0;
  208.     if(cd[0] != '.' & sd->d_type == 4){
  209.         jq = 1;
  210.         char k[128];
  211.         k[0]='.';
  212.         k[1]='/';
  213.         int t = 0;
  214.         for(i = 2;;i++){
  215.         k[i] = cd[t];
  216.         if(cd[t] == '\0') break;
  217.         t++;
  218.         }
  219.         katt(k);
  220.     }
  221.  
  222.     int n = 0;
  223.     char hh2[128];
  224.  
  225.     for(ii=0;;ii++){
  226.         if(cd[ii] == '\0') break;
  227.         hh2[ii] = cd[ii];
  228.     }
  229.  
  230.  
  231.     int f = 0;
  232.     for(i=0;i < strlen(hh2);i++){
  233.         if(isalpha(hh2[i])) n++;
  234.     }
  235.     char hh22[128];
  236.     char hh1[128];
  237.     int check = 0;
  238.     for(i=0;;i++){
  239.         if(hh2[i] == '\0')break;
  240.         hh22[i] = hh2[i];
  241.         if(hh22[i] == '_'){
  242.         check = 1;
  243.         break;
  244.         }
  245.     }
  246.     char hg[128];
  247.     if(check == 1){
  248.         i++;
  249.         for(i=i;;i++){
  250.         hh1[f] = hh2[i];
  251.         f++;
  252.         if(i==n) break;
  253.         }
  254.  
  255.  
  256.         for(i=0;;i++){
  257.         hg[i] = hh22[i];
  258.         if(hg[i] == '_') break;
  259.         }
  260.         int gi = 0;
  261.         i++;
  262.         for(i=i++;;i++){
  263.         if(chc[gi] == '\0') break;
  264.         hg[i] = chc[gi];
  265.         gi++;
  266.         }
  267.         gi = 0;
  268.         for(i=i++;;i++){
  269.         if(hh1[gi] == '\0') break;
  270.         hg[i] = hh1[gi];
  271.         gi++;
  272.         }
  273.     }
  274.     printf ("size=%ld, check=%d\n",size,check);
  275.     if(size != -1)
  276.         if(check == 1){
  277.         printf ("rename %s to %s\n",sd->d_name,hg);
  278.         rename(sd->d_name, hg);
  279.        
  280.         check = 0;
  281.         }
  282.         else
  283.         printf("You cool!\n");
  284.     }
  285.  
  286.     closedir(dir);
  287.     return 0;
  288. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement