Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.16 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <windows.h>
  3. #include <iostream>
  4. #include <tchar.h>
  5. #include <stdio.h>
  6. #include <locale.h>
  7. #include <strsafe.h>
  8.  
  9.  
  10.  
  11. //для разворота строки в
  12. void reverse(TCHAR s[]) {
  13.     int i, j;
  14.     TCHAR c;
  15.  
  16.     for (i = 0, j = _tcslen(s) - 1; i < j; i++, j--) {
  17.         c = s[i];
  18.         s[i] = s[j];
  19.         s[j] = c;
  20.     }
  21. }
  22.  
  23. //преобразование чисел в строку
  24. void ita(int n, TCHAR s[]) {
  25.     int i, sign;
  26.  
  27.     if ((sign = n) < 0)
  28.         n = -n;
  29.     i = 0;
  30.     do {
  31.         s[i++] = n % 10 + '0';
  32.     } while ((n /= 10) > 0);
  33.  
  34.     if (sign < 0)
  35.         s[i++] = '-';
  36.     s[i] = '\0';
  37.     reverse(s);
  38. }
  39.  
  40. /*
  41. #include <windows.h>
  42. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  43. LPSTR lpCmdLine, int nShowCmd)
  44. {
  45. HANDLE hFile;
  46. LARGE_INTEGER size;
  47. HANDLE hMap = NULL;
  48. wchar_t buf[128];
  49. hFile=CreateFileW( L"D:\\login.txt", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
  50. if(hFile!=INVALID_HANDLE_VALUE)
  51. {
  52. GetFileSizeEx(hFile, &size);
  53. _i64tow(size.QuadPart, buf, 10);
  54. MessageBoxW(NULL, buf, L"File size", MB_OK);
  55. CloseHandle(hFile);
  56. }
  57. else MessageBoxW(NULL, L"Can not open file!", L"Error", MB_OK);
  58. }
  59.  
  60. */
  61. /*TCHAR strplus(TCHAR g[256], TCHAR f[256]) {
  62.     int i = 0;
  63.     for (;; i++) {
  64.         if (g[i] == '\0') break;
  65.     }
  66.     int p = 0;
  67.     for (;;i++) {
  68.         g[i] = f[p];
  69.         p++;
  70.         if (f[p] == '\0') break;
  71.     }
  72.     return g[256];
  73. }
  74. TCHAR str(TCHAR g[256], TCHAR f[256]) {
  75.     int i = 0;
  76.     for (;; i++) {
  77.         g[i] = f[i];
  78.         if (f[i] == '\0') break;
  79.     }
  80.     return g[256];
  81. }
  82. */
  83.  
  84. void katalog(TCHAR a[256])
  85. {
  86.     setlocale(LC_ALL, "Russian");
  87.     WIN32_FIND_DATA FindFileData;
  88.     HANDLE hf;
  89.     hf = FindFirstFile(a, &FindFileData);
  90.     if (hf != INVALID_HANDLE_VALUE)
  91.     {
  92.         do
  93.         {
  94.             int i;
  95.  
  96.             int dwSize = 0;
  97.             TCHAR z[256];
  98.             TCHAR w[256];
  99.            
  100.             for (i=0;; i++) {
  101.                 w[i] = a[i];
  102.                 if (a[i] == '*') {
  103.                     a[i] = '\0';
  104.                     break;
  105.                 }
  106.                
  107.             }
  108.  
  109.             TCHAR ww[256];
  110.             for (i = 0;; i++) {
  111.                 ww[i] = a[i];
  112.                 if (a[i] == '*') {
  113.                     a[i] = '\0';
  114.                     break;
  115.                 }
  116.             }
  117.             TCHAR* j = FindFileData.cFileName;
  118.  
  119.             //присвоение z имени файла
  120.             for (i = 0;; i++) {
  121.                 z[i] = j[i];
  122.                 if (j[i] == 0) break;
  123.             }
  124.             TCHAR zzz[256];
  125.             TCHAR zz[256]; //FindFileData.cFileName;
  126.             dwSize = FindFileData.nFileSizeLow;
  127.             // присвоение zz имени файла
  128.             for (i = 0;; i++) {
  129.                 if (z[i] == '\0') break;
  130.                 zz[i] = z[i];
  131.             }
  132.             int check = 0;
  133.             for (i = 0;; i++) {
  134.                 if (z[i] == '_') check = 1;
  135.                 if (z[i] == '\0') break;
  136.             }
  137.             TCHAR s1[256];
  138.             TCHAR s2[256];
  139.             TCHAR si[256];
  140.  
  141.             if (check == 1) {
  142.                 for (i = 0;; i++) {
  143.                     s1[i] = z[i];
  144.                     if (s1[i] == '_') {
  145.                         s1[++i] = '\0';
  146.                         break;
  147.                     }
  148.                 }
  149.                 //i++;
  150.                 int y = 0;
  151.                 for (;; i++) {
  152.  
  153.  
  154.                     s2[y] = z[i];
  155.                     if (z[i] == '\0') break;
  156.                     y++;
  157.                 }
  158.                 //w равно путь и размер
  159.                 ita(dwSize, zzz);
  160.  
  161.                 for (i = 0;; i++) {
  162.  
  163.                     si[i] = s1[i];
  164.                     if (s1[i] == '\0') break;
  165.                 }
  166.                 int t = 0;
  167.                 for (;; i++) {
  168.  
  169.                     si[i] = zzz[t];
  170.                     if (zzz[t] == '\0') break;
  171.                     t++;
  172.                 }
  173.                 t = 0;
  174.                 for (;; i++) {
  175.                     si[i] = s2[t];
  176.                     if (s2[t] == '\0') break;
  177.                     t++;
  178.                 }
  179.                 for (i = 0;; i++) {
  180.                     if (w[i] == '\0') break;
  181.                 }
  182.                 int p = 0;
  183.                 for (;; i++) {
  184.  
  185.                     w[i] = si[p];
  186.  
  187.                     p++;
  188.                     if (si[p] == '\0') break;
  189.                 }
  190.  
  191.  
  192.  
  193.                 //i равна точному количеству символов пути
  194.                 for (i = 0;; i++) {
  195.                     if (ww[i] == '\0') break;
  196.                 }
  197.                 int k = 0;
  198.                 //ww равна имени файла с путём
  199.                 for (;; i++) {
  200.                     if (z[k] == '\0') break;
  201.                     ww[i] = z[k];
  202.                     k++;
  203.                 }
  204.                 //printf("%s\n",ww);
  205.                 LPCTSTR lzz = (LPCTSTR)ww;
  206.  
  207.                 //printf("%s\n", lzz);
  208.                 LPCTSTR lzzz = (LPCTSTR)w;
  209.                 //printf("%s\n", lzzz);
  210.                 /*printf("%s\n",w);
  211.  
  212.                 printf("%s\n", lzzz);*/
  213.                 //printf("%d", FindFileData.nFileSizeLow);
  214.  
  215.                 MoveFile(lzz, lzzz);
  216.                 //printf("%d",GetLastError());
  217.                 //_tprintf(_T("\n"));
  218.                 check = 0;
  219.             }
  220.  
  221.  
  222.  
  223.         } while (FindNextFile(hf, &FindFileData) != 0);
  224.         FindClose(hf);
  225.     }
  226. }
  227.  
  228. void main()
  229. {
  230.     setlocale(LC_ALL, "Russian");
  231.     WIN32_FIND_DATA FindFileData;
  232.     TCHAR a[256] = _T("C:\\Users\\mrmai\\OneDrive\\Рабочий стол\\пр3\\подкаталог\\*");
  233.     HANDLE hf;
  234.     hf = FindFirstFile(a, &FindFileData);
  235.     if (hf != INVALID_HANDLE_VALUE)
  236.     {
  237.         do
  238.         {
  239.             int i;
  240.  
  241.             int dwSize = 0;
  242.             TCHAR z[256];
  243.             TCHAR w[256] = _T("C:\\Users\\mrmai\\OneDrive\\Рабочий стол\\пр3\\");
  244.             TCHAR b[256] = _T("C:\\Users\\mrmai\\OneDrive\\Рабочий стол\\пр3\\");
  245.             TCHAR ww[256] = _T("C:\\Users\\mrmai\\OneDrive\\Рабочий стол\\пр3\\");
  246.             TCHAR* j = FindFileData.cFileName;
  247.  
  248.             //присвоение z имени файла
  249.             for (i = 0;; i++) {
  250.                 z[i] = j[i];
  251.                 if (j[i] == 0) break;
  252.             }
  253.             TCHAR zzz[256];
  254.             TCHAR zz[256]; //FindFileData.cFileName;
  255.             dwSize = FindFileData.nFileSizeLow;
  256.             // присвоение zz имени файла
  257.             for (i = 0;; i++) {
  258.                 if (z[i] == '\0') break;
  259.                 zz[i] = z[i];
  260.             }
  261.             int check = 0;
  262.             for (i = 0;; i++) {
  263.                 if (z[i] == '_') check = 1;
  264.                 if (z[i] == '\0') break;
  265.             }
  266.             TCHAR s1[256];
  267.             TCHAR s2[256];
  268.             TCHAR si[256];
  269.  
  270.  
  271.             int kat = 0;
  272.             //проверка на каталог
  273.             if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
  274.                 if (z[0] != '.') {
  275.                     //  printf("%s\n", z);
  276.  
  277.                     kat = 1;
  278.  
  279.                 }
  280.             }
  281.  
  282.  
  283.  
  284.             if (check == 1 and kat != 1) {
  285.                 for (i = 0;; i++) {
  286.                     s1[i] = z[i];
  287.                     if (s1[i] == '_') {
  288.                         s1[++i] = '\0';
  289.                         break;
  290.                     }
  291.                 }
  292.                 //i++;
  293.                 int y = 0;
  294.                 for (;; i++) {
  295.  
  296.  
  297.                     s2[y] = z[i];
  298.                     if (z[i] == '\0') break;
  299.                     y++;
  300.                 }
  301.                 //w равно путь и размер
  302.                 ita(dwSize, zzz);
  303.  
  304.                 for (i = 0;; i++) {
  305.  
  306.                     si[i] = s1[i];
  307.                     if (s1[i] == '\0') break;
  308.                 }
  309.                 int t = 0;
  310.                 for (;; i++) {
  311.  
  312.                     si[i] = zzz[t];
  313.                     if (zzz[t] == '\0') break;
  314.                     t++;
  315.                 }
  316.                 t = 0;
  317.                 for (;; i++) {
  318.                     si[i] = s2[t];
  319.                     if (s2[t] == '\0') break;
  320.                     t++;
  321.                 }
  322.                 for (i = 0;; i++) {
  323.                     if (w[i] == '\0') break;
  324.                 }
  325.                 int p = 0;
  326.                 for (;; i++) {
  327.  
  328.                     w[i] = si[p];
  329.  
  330.                     p++;
  331.                     if (si[p] == '\0') break;
  332.                 }
  333.  
  334.  
  335.  
  336.                 //i равна точному количеству символов пути
  337.                 for (i = 0;; i++) {
  338.                     if (ww[i] == '\0') break;
  339.                 }
  340.                 int k = 0;
  341.                 //ww равна имени файла с путём
  342.                 for (;; i++) {
  343.                     if (z[k] == '\0') break;
  344.                     ww[i] = z[k];
  345.                     k++;
  346.                 }
  347.                 //printf("%s\n",ww);
  348.                 LPCTSTR lzz = (LPCTSTR)ww;
  349.  
  350.                 //printf("%s\n", lzz);
  351.                 LPCTSTR lzzz = (LPCTSTR)w;
  352.                 //printf("%s\n", lzzz);
  353.                 /*printf("%s\n",w);
  354.  
  355.                 printf("%s\n", lzzz);*/
  356.                 //printf("%d", FindFileData.nFileSizeLow);
  357.  
  358.                 MoveFile(lzz, lzzz);
  359.                 //printf("%d",GetLastError());
  360.                 //_tprintf(_T("\n"));
  361.                 check = 0;
  362.             }
  363.  
  364.             if (kat == 1) {
  365.                 _tcscat(b, j);
  366.                 _tcscat(b, _T("\\"));
  367.                 _tcscat(b, _T("*"));
  368.                 katalog(b);
  369.             }
  370.  
  371.  
  372.  
  373.         } while (FindNextFile(hf, &FindFileData) != 0);
  374.         FindClose(hf);
  375.     }
  376. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement