Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 30.11.2017
Сообщений: 21

Подключить несколько путей к нескольким одинаковым файлам

01.12.2017, 00:06. Показов 1097. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень нужна ваша помощь
Делаю замену текста в файле, но вот нужно заменить во всех таких файлах к которым указан путь.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   FileStream fn = new FileStream(@"D:\Autoshot", FileMode.Open, FileAccess.Read);
                    StreamReader fon = new StreamReader(fn);
                    string str = fon.ReadToEnd();
                    fon.Close();
                    fn.Close();
 
                    
 
                    if (str.Contains("pixel 245")) str = str.Replace("pixel 245", "pixel 0");
                    else str = str.Replace("pixel 0", "pixel 245");
 
                    fn = new FileStream(@"D:\Autoshot", FileMode.Create, FileAccess.Write);
                    StreamWriter fin = new StreamWriter(fn);
                    fin.Write(str);
                    fin.Close();
                    fn.Close();
Тут путь только к одному файлу и его замене.

А надо что бы я прописал туда сколько угодно путей, или хотя бы 5.

Примерно должно быть так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 FileStream fn = new FileStream(@"D:\Autoshot", "D:\Game\Autoshot", "D:\Game\Folder\Autoshot", "C:\users\Autoshot", FileMode.Open, FileAccess.Read);
                    StreamReader fon = new StreamReader(fn);
                    string str = fon.ReadToEnd();
                    fon.Close();
                    fn.Close();
 
                    
 
                    if (str.Contains("pixel 245")) str = str.Replace("pixel 245", "pixel 0");
                    else str = str.Replace("pixel 0", "pixel 245");
 
                    fn = new FileStream(@"D:\Autoshot", "D:\Game\Autoshot", "D:\Game\Folder\Autoshot", "C:\users\Autoshot",  FileMode.Create, FileAccess.Write);
                    StreamWriter fin = new StreamWriter(fn);
                    fin.Write(str);
                    fin.Close();
                    fn.Close();
Файлы в которых я заменяю строки все одинаковые по содержанию и названию, но надо путь сразу ко всем.
чтобы не приходилось для каждого файла писать
C#
1
2
 if (str.Contains("pixel 245")) str = str.Replace("pixel 245", "pixel 0");
                    else str = str.Replace("pixel 0", "pixel 245");
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.12.2017, 00:06
Ответы с готовыми решениями:

Как подключить js-скрипт сразу к нескольким файлам?
Здравствуйте. Вот есть допустим папка а в ней файлы page1, page2....page57 Должен ведь быть способ подключить js-скрипт ко всем файлам...

Как к нескольким файлам html подключить текст из другого html через php?
Ребят, расскажите пожалуйста как к нескольким файлам html через php подключить текст из другого html. Я создаю сайт и каждый раз...

Явное задание путей к файлам
Здравствуйте, при сборке проекта в exe-шник не находятся файлы, так как указываю только их имена (при отладке-то работает). можно ли задать...

3
 Аватар для worldown
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
01.12.2017, 11:35
Volwet,
Не забываем о буквально строковом литерале (@) перед кавычками т.е @"путь\файл" а не "путь\файл"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.IO;
 
namespace csharp_console {
 
 
    class thread2147167 {
        /// <summary>
        /// ReplacTextInFiles("что ищем", "на что меняем", @"путь\файл1", @"путь\файл2", @"путь\файл13);
        /// </summary>
        static void ReplacTextInFiles(string find, string repl, params string[] @paths) {
            foreach (var path in paths) {
                if (File.Exists(path)) {
                    string text = File.ReadAllText(path);
                    Console.Write(path);
                    if (text.Contains(find)) {
                        File.WriteAllText(path, text.Replace(find, repl));
                        Console.WriteLine(" has modified", path);
                    } else {
                        Console.WriteLine(" hasn't modified", path);
                    }
 
                }
            }
        }
        static void Main(string[] args) {
            ReplacTextInFiles("pixel 245", "pixel 0", @"D:\Autoshot", @"D:\Game\Autoshot", @"D:\Game\Folder\Autoshot", @"C:\users\Autoshot");
        }
 
    }
}
0
0 / 0 / 0
Регистрация: 30.11.2017
Сообщений: 21
01.12.2017, 19:01  [ТС]
Спасибо конечно
Но можно без консоли?

Вот как из этого кода сделать:?
C#
1
2
3
4
const string fileName = (@"путь к первому файлу", @"тут к вторму(не работает)", " третий и тд");
                    string[] lines = File.ReadAllLines(fileName);
                    @lines[500] = (@"pixel 245");
                    File.WriteAllLines(fileName, lines);
0
 Аватар для worldown
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
01.12.2017, 21:49
Цитата Сообщение от Volwet Посмотреть сообщение
Но можно без консоли?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            string[] paths = {
                @"D:\Autoshot",
                @"D:\Game\Autoshot",
                @"D:\Game\Folder\Autoshot",
                @"C:\users\Autoshot" };
 
            string find = "pixel 245"; //что ищем
            string repl = "pixel 0"; //на что меняем
 
            foreach (var path in paths) {
                if (File.Exists(path)) {
                    string text = File.ReadAllText(path);
                    Console.Write(path);
                    if (text.Contains(find)) {
                        File.WriteAllText(path, text.Replace(find, repl));
                    }
                }
            }
Цитата Сообщение от Volwet Посмотреть сообщение
Вот как из этого кода сделать:?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            string[] files = {
                @"путь к первому файлу",
                @"тут к вторму",
                @" третий и тд" };
 
            foreach (var file in files) {
                if (File.Exists(file)) {
                    string[] lines = File.ReadAllLines(file);
                    if (lines.Length >= 500) {
                        lines[500] = "pixel 245";
                        File.WriteAllLines(file, lines);
                    }
                }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2017, 21:49
Помогаю со студенческими работами здесь

Хранение нескольких путей к файлам
Добрый вечер, интересует есть ли на ВФ клас который позволят взять адрес файла. код:using System; using System.Collections.Generic; ...

Как получить массив путей к файлам?
Есть папка ив ней есть вложенные папки,в тех могут быть еще вложенные ,задача получить все пути к картинкам типа png/gpg/gif Есть нашли...

Создание файла со списком путей к файлам
Привет парни! Помогите с темой: 1. Нужно создать файл следующей структуры: Имя Путь К примеру: Калькулятор

Заполнение TreeView из списка путей к файлам и папкам
Суть проблемы: имеется список с полными путями к файлам и папкам, типа: D:\Test D:\Test\New text document.txt D:\Test\FOLDER1 ...

Заполнение xml файла из списка путей к файлам и папкам
Суть проблемы: имеется список с полными путями к файлам и папкам, типа: D:\Test D:\Test\New text document.txt D:\Test\FOLDER1 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru