|
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 59
|
|||||||
Патчер файлов не видет папки находящиеся в папках16.06.2019, 22:54. Показов 705. Ответов 3
Метки нет (Все метки)
Уважаемые форумчане очень нужна помощь в наладке приложения
Не могу понять что не так ошибок нет но работает не так как надо Буду благодарен кто поможет
0
|
|||||||
| 16.06.2019, 22:54 | |
|
Ответы с готовыми решениями:
3
Создать папки по структуре, поместить главную страницу в одну папку и создать гиперссылки на страницы, находящиеся в других папках Написать программу для переименования файлов в папках по имени папки |
|
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
|
|
| 17.06.2019, 11:45 | |
|
0
|
|
|
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
|
|
| 17.06.2019, 11:54 | |
|
ignor-gto, а можно исходных код предоставлять (не забывая заключать их в теги C#, само собой), а не какие-то сомнительные ссылки?
0
|
|
|
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 59
|
|||||||||||
| 17.06.2019, 15:35 [ТС] | |||||||||||
|
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
[CSHARP]
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Collections; using System.IO; using Ionic.Zip; namespace Builder_Game_Update { public partial class Step3 : Form { public Step3() { InitializeComponent(); } // in params private string VERSION_FILE = "update.version"; private int AllFiles = Properties.Settings.Default.AllFilesCnt; private string PathClient = Properties.Settings.Default.PathClient; private string PathTo = Properties.Settings.Default.PathTo; ArrayList CL = Properties.Settings.Default.CriticalList ; private string[] delimeter = { "|" }; //Delegate private delegate void updateProgressFullDelegate(int val); private delegate void updateFileProgressDelegate(int val); private delegate void ShowMsgProgressDelegate(string val); private void UpdateProgressFull(int val) { if (this.PB_FULL.InvokeRequired) this.PB_FULL.Invoke(new updateProgressFullDelegate(UpdateProgres sFull), val); else this.PB_FULL.Value = val; } private void UpdateFileProgress(int val) { if (this.PB_FILE.InvokeRequired) this.PB_FILE.Invoke(new updateFileProgressDelegate(UpdateFilePro gress), val); else this.PB_FILE.Value = val; } private void ShowMsgProgress(string val) { if (this.StatusMsg.InvokeRequired) this.StatusMsg.Invoke(new ShowMsgProgressDelegate(ShowMsgProgress) , val); else this.StatusMsg.Text = val; } private int GetPatchVersion(bool delete) { if (File.Exists(PathTo + "\\" + VERSION_FILE)) { //читаем его и получаем версию патча string VersionFileLine; int PatchVersion = 0; StreamReader VersionFile = new StreamReader(PathTo + "\\" +VERSION_FILE); while ((VersionFileLine = VersionFile.ReadLine()) != null) { if (VersionFileLine != "") { PatchVersion = Convert.ToInt16(VersionFileLine); } } VersionFile.Close(); //удаляем файл if (delete == true) File.Delete(PathTo + "\\" +VERSION_FILE); return PatchVersion; } return 0; } private void PlusPatchVersion() { int pVersion = this.GetPatchVersion(true); pVersion++; if (File.Exists(PathTo + "\\" + VERSION_FILE)) File.Delete(PathTo + "\\" + VERSION_FILE); FileStream vFile = new FileStream(PathTo + "\\" +VERSION_FILE, FileMode.Create, FileAccess.Write); StreamWriter svFl = new StreamWriter(vFile); svFl.WriteLine(pVersion.ToString()); svFl.Close(); vFile.Close(); } private void Step3_Load(object sender, EventArgs e) { PB_FULL.Maximum = AllFiles; this.PlusPatchVersion(); // создаем наши 2 главных файла ShowMsgProgress("Проверяем наличие файла full.list"); if (System.IO.File.Exists(PathTo + "\\full.list")) { ShowMsgProgress("Файл full.list найден"); if (File.Exists(PathTo + "\\_full.list")) { File.Delete(PathTo + "\\_full.list"); } ShowMsgProgress("Переименовываем full.list в _full.list"); File.Move(PathTo + "\\full.list", PathTo + "\\_full.list"); } ShowMsgProgress("Создаем файл full.list"); FileStream fFl = new FileStream(PathTo + "\\full.list", FileMode.Create, FileAccess.Write); fFl.Close(); ShowMsgProgress("Проверяем наличие файла critical.list"); if (System.IO.File.Exists(PathTo + "\\critical.list")) { ShowMsgProgress("Файл critical.list найден, убиваем"); File.Delete(PathTo + "\\critical.list"); } else { ShowMsgProgress("Файл critical.list не найден."); } ShowMsgProgress("Создаем файл critical.list"); FileStream cFl = new FileStream(PathTo + "\\critical.list", FileMode.Create, FileAccess.Write); cFl.Close(); // усе файлы есть, погнали дальше this.BW_MAIN.RunWorkerAsync(2000); } private void Step3_FormClosed(object sender, FormClosedEventArgs e) { Application.Exit(); } private void BW_MAIN_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bw = sender as BackgroundWorker; this.Compile(); } private void Compile() { Crc32 crc32 = new Crc32(); int FullFileProgress = 0; bool FulFileExist = false; bool CriticalExist = true; if (CL.Count <= 0) CriticalExist = false; if (CriticalExist) { ShowMsgProgress("Есть критические файлы в обновлении"); } ShowMsgProgress("Открываем файл critical.list на запись"); FileStream fsCU = new FileStream(PathTo + "\\critical.list", FileMode.Open, FileAccess.Write); StreamWriter sCU = new StreamWriter(fsCU); ShowMsgProgress("Открываем файл full.list на запись"); FileStream fsFU = new FileStream(PathTo + "\\full.list", FileMode.Open, FileAccess.Write); StreamWriter sFU = new StreamWriter(fsFU); ShowMsgProgress("Проверяем наличие файла _full.list"); if (File.Exists(PathTo + "\\_full.list")) FulFileExist = true; if (FulFileExist) { ShowMsgProgress("Файл предшествующего обновления найден!"); ShowMsgProgress("При обновлении будем учитывать его данные"); } ShowMsgProgress("Начинаем педалить"); DirectoryInfo diFromDir = new DirectoryInfo(@PathClient); DirectoryInfo[] diFromArr = diFromDir.GetDirectories(); foreach (DirectoryInfo DirName in diFromArr) { DirectoryInfo fFromDir = new DirectoryInfo(@PathClient + "/" + DirName); ShowMsgProgress("Читаем директорию: " + DirName); foreach (FileInfo Fname in fFromDir.GetFiles()) { //params bool ToZip = true; UpdateFileProgress(0); ShowMsgProgress("Проверяем есть ли в обновлениях директория: " + DirName); if (!System.IO.Directory.Exists(PathTo + "\\" + DirName)) { ShowMsgProgress("Нихера нету, создаем директорию: " + DirName); System.IO.Directory.CreateDirectory(Path To + "\\" + DirName); } ShowMsgProgress("Собираем информаци о файле: " + Fname); string FileHash = crc32.Get(PathClient + "\\" + DirName + "\\" + Fname); if (FulFileExist) { string line; StreamReader readLastAllFile = new StreamReader(@PathTo + "\\_full.list"); //readLastAllFile. while ((line = readLastAllFile.ReadLine()) != null) { string[] sLine = line.Split(delimeter, StringSplitOptions.RemoveEmptyEntries); if (sLine[0].Trim() == DirName+"\\"+Fname) { if (File.Exists(PathTo + "\\" + sLine[0] + ".zip")) { ShowMsgProgress("Файл: " + Fname + " уже есть в обновлениях."); ShowMsgProgress("Проверяем файл: " + Fname + " на наличие модификаций"); if (FileHash == sLine[2].Trim() && sLine[4].Trim() == crc32.Get(PathTo + "\\" + sLine[0] + ".zip")) { ShowMsgProgress("Хеш файла: " + Fname + " совпал, файл не обновлялся. Пропускаем"); ToZip = false; } } } } readLastAllFile.Close(); } if (ToZip) { ShowMsgProgress("Архивируем файл: " + PathClient + "\\" + DirName + "\\" + Fname); using (ZipFile zip = new ZipFile()) // Создаем объект для работы с архивом { zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompress ion; // Задаем максимальную степень сжатия zip.AddFile(@PathClient + "\\" + DirName + "\\" + Fname, ""); zip.Save(@PathTo + "\\" + DirName + "\\" + Fname + ".zip"); // Создаем архив } } ShowMsgProgress("Собираем информацию о файле для обновлений"); FileInfo SizecF = new FileInfo(PathClient + "\\" + DirName + "\\" + Fname); FileInfo SizecFz = new FileInfo(PathTo + "\\" + DirName + "\\" + Fname + ".zip"); string ZFHash = crc32.Get(PathTo + "\\" + DirName + "\\" + Fname + ".zip").ToString(); sFU.WriteLine(DirName + "\\" + Fname + "|" + SizecF.Length + "|" + FileHash.ToString() + "|" + SizecFz.Length + "|" + ZFHash); if (CL.Contains(DirName + "\\" + Fname)) { sCU.WriteLine(DirName + "\\" + Fname + "|" + SizecF.Length + "|" + FileHash.ToString() + "|" + SizecFz.Length + "|" + ZFHash); } //tick FullFileProgress++; UpdateProgressFull(FullFileProgress); } } ShowMsgProgress("Завершение операций"); if (CriticalExist) { sCU.Close(); } sFU.Close(); if (FulFileExist) File.Delete(PathTo + "\\_full.list"); ShowMsgProgress("Создание обновления успешно завершено"); } private void BW_MAIN_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { this.PB_FILE.Style = ProgressBarStyle.Blocks; } } } [/CODE] Проблема в том что патчер файлов не видет папки находящиеся в папках и пустые папки и темболее ещо и внутриние папки
0
|
|||||||||||
| 17.06.2019, 15:35 | |
|
Помогаю со студенческими работами здесь
4
Создать папки по маске из ячейки и проверить на наличие в них (папках) файлов и закрасить ячейку
Из нескольких папок копировать папки с файлами в другие папки, не заменяя ничего в конечных папках
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|