Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2008, 23:21   #1
snaem
Пользователь
 
Регистрация: 04.01.2008
Сообщений: 21
По умолчанию Под скажите как переименовать файл?

Пытался используя openFileDialog переименовать файл, но при выполнение ошибка
файл используется другим процессом
Код:
	private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) 
			 {
				 Stream^s;
this->DialogResult=System::Windows::Forms::DialogResult::OK;
if(this->openFileDialog1->ShowDialog()==System::Windows::Forms::DialogResult::OK)
{
if((s=this->openFileDialog1->OpenFile())!=nullptr)
{ 				
String^str_адрес=this->openFileDialog1->FileName;//имя файла в String
     int i =(str_адрес->Length)-7;//размер имени файла
	 String^filesa=str_адрес->Remove(i,3);//удаление 3 символов
     File::Move(str_адрес,filesa);//переименование
}
else
{
	MessageBox::Show("нет");
}
snaem вне форума Ответить с цитированием
Старый 20.04.2008, 23:54   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так, а зачем же вы файл-то открываете?
Вы попробуйте просто в винде открыть, к примеру, какой-нибудь файл в блокноте, а потом его не в блокноте переименовать...
mihali4 вне форума Ответить с цитированием
Старый 21.04.2008, 08:36   #3
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

У тебя весь объем файла загружен в поток, притом этот поток не главный. Зачем тебе вообще при переименовании одного файла исользовать поток, и вообще зачем использовать тут поток? Дети мощьных компьютеров блин

Код:
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
			 {
				 String ^oldpath;
				 String ^newpath;

				 if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK &&
					 openFileDialog1->FileName != "")
				 {
					try
					{
						oldpath = openFileDialog1->FileName;
						newpath = oldpath->Remove((oldpath->Length - 7), 3);
						openFileDialog1->Reset();
						File::Move(oldpath, newpath);
				    }
					catch (System::NullReferenceException ^ex)
					{
						MessageBox::Show("Ошибка при переименовании" + ex, "Ошибка", 
							MessageBoxButtons::OK, MessageBoxIcon::Error);
					}
				 }
				 else
				 {	
				 }
			 }
	};
to Михалыч: Если я файл открою в блокноте, затем его исправлю, ТО ВСЕ РАВНО СМОГУ переименовать, переместить, скопировать ваще пофиг что он уже открыт. Тут трабла в другом.

Последний раз редактировалось merax; 21.04.2008 в 10:07.
merax вне форума Ответить с цитированием
Старый 23.04.2008, 22:23   #4
snaem
Пользователь
 
Регистрация: 04.01.2008
Сообщений: 21
По умолчанию

Спасибо за совет разобрался.
snaem вне форума Ответить с цитированием
Старый 23.04.2008, 23:15   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
to Михалыч: Если я файл открою в блокноте, затем его исправлю, ТО ВСЕ РАВНО СМОГУ переименовать, переместить, скопировать ваще пофиг что он уже открыт. Тут трабла в другом.
Да, насчет блокнота согласен. Я имел в виду тот случай, когда винда файл блокирует. А с блокнотом, конечно, неудачный пример...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скажите плз как без исходников изменить код? Silver_sk Общие вопросы Delphi 3 02.07.2010 23:27
Можно ли программно переименовать папку Rusl92 Общие вопросы Delphi 3 13.09.2008 12:52
Переименовать файлы по списку!? jungo Microsoft Office Excel 14 19.05.2008 11:43
как переименовать samosval Общие вопросы .NET 1 19.12.2007 21:40