Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Переименование файлов. форматы *.*, name.*, *.txt и тд

Ответить
Настройки темы
.NET - [решено] Переименование файлов. форматы *.*, name.*, *.txt и тд

Аватара для Efsey

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Efsey
Дата: 25-08-2010
Каким образом возможно переименование файлов с сохранением расширения или частичное переименование?
Пример:

vsyakaychush.e03 в myfile.x03

то есть *.е* или *.а* в myfile.x*

Для переименования пытался использовать:
Код: Выделить весь код
DirectoryInfo DI = new DirectoryInfo("D:\\1\\");
      foreach (FileInfo FI in DI.GetFiles("*.e0*")) //Перебираем только .e0*
        {
         //Получаем список всех .e0* архивов(FI.FullName) и делаем с ними что нить!     
         FileInfo info = new FileInfo(FI.FullName);
         FI.MoveTo ("D:\\1\\myfile.x0*");//переименование в myfile.x0*... только знак * не проходит
         }

Отправлено: 09:34, 25-08-2010

 

В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Что то не совсем понятно! тебе к предыдущему расширению нужно спереди прибавить символ?
по твоей схеме :
Цитата Efsey:
то есть *.* в myfile.x* »
должно получится что то типа : vsyakaychush.e03 в myfile.xe03

И как вообще куча файлов с одним именем?оО Объясни пожалуйста, что конкретнее надо!

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 12:10, 25-08-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Efsey

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


Решил проблему таким образом:
Код: Выделить весь код
private void chnam_Click(object sender, EventArgs e)
        {
            DirectoryInfo DI = new DirectoryInfo("D:\\1\\");
            foreach (FileInfo FI in DI.GetFiles("*.e0*")) //Перебираем только .e0*
            {
                //Получаем список всех .eo* архивов(FI.FullName) и делаем с ними что нить!     
                FileInfo info = new FileInfo(FI.FullName);
                string name = FI.Name;
                MessageBox.Show(FI.Name);
                string result = name.Substring(name.IndexOf(".", 0));//чтение от точки, то есть только расширение
                MessageBox.Show(result);
                string str = "D:\\1\\myfile" + result;
                MessageBox.Show(str);
                File.Move(FI.FullName, str);
            }
        }
Решение, конечно, не очень. Может есть способы попроще?



Нужно оставить от расширения последние две цифры.

Последний раз редактировалось Efsey, 25-08-2010 в 12:27.


Отправлено: 12:14, 25-08-2010 | #3


Аватара для RUVATA

Старожил


Сообщения: 301
Благодарности: 16

Профиль | Отправить PM | Цитировать


можно вопрос а зачем?... может есть более толерантный способ решить твою задачу...
то что ты пытаешься сделать м-м-м-м-м как бы тебе сказать...

-------
Одно дело искать сиюминутное решение, другое - искать знания...
вот и думай - что ты ищешь...


Отправлено: 12:17, 25-08-2010 | #4


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Efsey:
string result = name.Substring(name.IndexOf(".", 0)); »
,

Все бы хорошо, но вот если имя файла будет иметь вид что то вроде : 123.456.txt, метод IndexOf ищет первое вхождение символа в строке! и получится что ты считаешь не только расширение!

Делай так :
Код: Выделить весь код
string result = FI.Extension; //Вернет расширение файла!
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:20, 25-08-2010 | #5


Аватара для Efsey

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


RUVATA, я вот и спрашиваю - каким способом это можно сделать. учу С# ЦЕЛЫХ 8 Дней

Файлы как раз только с одной точкой... по крайней мере пока, но способ хотелось бы найти заранее

Отправлено: 12:28, 25-08-2010 | #6


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Efsey:
Файлы как раз только с одной точкой... по крайней мере пока, но способ хотелось бы найти заранее »
Способ выше Вроде должен подойти

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 12:31, 25-08-2010 | #7


Аватара для Efsey

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хм, а ларчик просто открывался , осталось только извлечь две цифры из расширения.

Отправлено: 12:40, 25-08-2010 | #8


Аватара для RUVATA

Старожил


Сообщения: 301
Благодарности: 16

Профиль | Отправить PM | Цитировать


LilLoco, предлогает самый верный способ

Цитата LilLoco:
string result = FI.Extension; »
в твоем случае...

А мой вопрос заключался в следующем;
Зачем вообще менять расширения файлам? какая такая нужда заставляет?
опиши логику программы...

-------
Одно дело искать сиюминутное решение, другое - искать знания...
вот и думай - что ты ищешь...


Отправлено: 12:58, 25-08-2010 | #9


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Efsey:
осталось только извлечь две цифры из расширения. »
Омг, какие то ищо цифры в расширении Может быть символы? если символы то метод String.Substring(int,int) - Извлекает подстроку из строки!Ну а в зависимости 2 сначала или с конца, меняй параметры метода!

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 13:06, 25-08-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Переименование файлов. форматы *.*, name.*, *.txt и тд

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Переименование большого количества файлов 7human7 Microsoft Windows 2000/XP 7 22-11-2008 09:48
Разное - [решено] Переименование файлов mitrik Microsoft Windows 2000/XP 3 22-08-2008 04:53
Разное - [решено] Переименование файлов как в Vista sashaegor Microsoft Windows 2000/XP 5 29-01-2008 21:59
переименование файлов mask Программирование и базы данных 6 20-05-2003 00:53
Переименование файлов Pavelz Microsoft Windows NT/2000/2003 7 24-01-2003 10:32




 
Переход