Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 8
1

Создание (сохранение) файла без перезаписи с добавлением цифры к имени файла

05.05.2015, 13:44. Показов 6375. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как реализовать в программе возможность сохранения файла без удаления старого(одноимённого файла)

Например. Когда я вручную создаю одноимённые текстовые документы, у них в конце добавляется цифра ...(1) ...(2) ...(3)

Я сохраняю изображение этим методом - Image.Save()
Но изображения перезаписываются, я бы мог попробовать сделать сканер всех файлов, но думаю что могут быть значительные задержки, программа будет работать медленно. Или не будет?

Есть ли в C# готовые методы?
Мне интересно, если создать тысячный одноимённый документ, будет ли загружаться жесткий диск?
Или Windows сразу знает какой номер дописывать.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2015, 13:44
Ответы с готовыми решениями:

Копирование файла с добавлением текущей даты к имени файла
Просто копирую файл XCOPY D:\BACKUP\base.bak E:\BACKUP\*.* /Y - норм... Мне нужно не заменять...

Написать текстовый редактор, в котором продемонстрировать открытие файла, сохранение файла, создание нового файла
№ 5. Написать текстовый редактор, в котором продемонстрировать открытие файла, сохранение файла,...

Изменение строки из файла без перезаписи
Привет, пробую без перезаписи файла заменить все буквы строки на большие. Пока что вышло только...

Как без перезаписи удалить строку из файла?
У мну задание такое есть именно удалить надо строку а не перезаписовать или копировать файл я вот...

3
214 / 214 / 73
Регистрация: 12.01.2011
Сообщений: 767
05.05.2015, 13:56 2
Цитата Сообщение от Ren_V Посмотреть сообщение
но думаю что могут быть значительные задержки
Врядли, только если тысячи файлов будут лежать в папке. тогда сканер ваш будет пробегать тысячи элементов и да будут задержки.
2) Возможно подошел бы метод... дописывать в хвост назавания файла тайм штамп ? как собственно фотоаппараты делают. к примеру "имя_05.05.2015_13-56.jpg" тогда врядли получится 2 одинаковых файла. Это достаточно старый прием.
3) как вариант если ведется база в программе добавить поле в котором хранить имена сохраненных файлов потом брать выбирать последний записанный ну и +1. тоже как вариант пойдет. Еще и учет своего рода сохраненных файлов будет.
1
63 / 69 / 22
Регистрация: 28.04.2015
Сообщений: 194
Записей в блоге: 1
05.05.2015, 20:30 3
Составил на скорую руку, надеюсь сильно судить не будете
Данная программа копирует файл, если существует к примеру 123.txt, то создаст 123(0).txt, если еще 1 нужен, то создаст 123(1).txt и тд. Я так и не понял, как Вы собираетесь сохранять файл, так что создал программу на копирование без замены.
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
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.IO;
 
 
public class Example
{
    public static void Main()
    {
 
        int value = 0;
        string FromWhere = "C:/Test/123.txt";
        
        string nameFile = "123(" + value + ").txt";
        string toWhere = "C:/Test/" + nameFile;
 
 
        string[] files = Directory.GetFiles("C:/Test/");
 
 
        for (int i = 0; i < files.Length; i++)
            {
 
                if (!(files[i] == FromWhere)) 
                {
                    if (files[i] == toWhere)
                    {
                        value++;
                        nameFile = "123(" + value + ").txt"; 
                        toWhere = "C:/Test/" + nameFile;
                    }
                    if(i == files.Length -1)
                    {
                        File.Copy(FromWhere, toWhere);
                    }
                }
                
 
            }
            
        Console.ReadKey(); 
    }
        
}
1
116 / 117 / 52
Регистрация: 19.12.2014
Сообщений: 612
05.05.2015, 21:41 4
Лучший ответ Сообщение было отмечено Ren_V как решение

Решение

Ren_V,
пробуйте, только чтобы исключить результаты ошибок, для начала на диске D, создайте такую же папку
работает, если удалить из всех файлов к примеру test1, то при новом сохранении, он его же и создаст
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
private void button1_Click(object sender, EventArgs e)
        {
            int i = 1;
            string put = "text" + ".txt";
            bool flag;
            do
            {
                if (File.Exists(@"D:\test\" + put) == false)
                {
                    flag = true;
                    using (StreamWriter sw = new StreamWriter(@"D:\test\" + put, false))
                    {
                        sw.WriteLine("Create");
                    }
                    MessageBox.Show("Создан!");
 
                }
                else
                {
                    flag = false;
                    put = "text" +i.ToString() +".txt";
                    i++;
                }
            } 
            while (flag==false);
        }
Добавлено через 9 минут
Ren_V, и да проверил на тысячи файлов в папке, без задержек создает новый файл
1
05.05.2015, 21:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2015, 21:41
Помогаю со студенческими работами здесь

Файлы C++. Запись в конец файла, без его перезаписи
Доброго времени суток, уважаемые форумчане! Изучаю работу с файлами в C++ с использованием fstream....

Запись в файл данных, без перезаписи всего файла
Существует какой-то файл, в котором есть набор данных. Мне нужно изменить значение только в одном...

Внесение изменений в XML без перезаписи всего файла
Такой вопрос есть приложение которое работает с данными в XML. Работает примерно таким образом : ...

Удаление одной записи из БД без перезаписи всего файла
Здравствуйте :) Наверное, по моему вопросу много информации в интернете, но я не знаю, как...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru