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

Копирование файлов C#, конфликт winxp и win7

16.07.2012, 18:42. Показов 1324. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо было создать программу, в ходе выполнения которой приходилось копировать указанные файлы в специальную папку программы с изменением имени. Эта задача выполнялась вот таким кодом:
C#
1
File.Copy(picopn.FileName, "c\\p\\" + rnd1 + "-" + System.IO.Path.GetFileName(picopn.FileName), true);
где picopn - Opendialog, rnd1 - случайное число, уже переведенное в строку
В общем из файла, имя которого берется из диалога, получался файл по адресу <папка программы>\c\p\555-имяфайла.jpg

И все это чудо работает на моей Win 7, а так же семерке друга и подопытной восьмерке, но отказывается работать на Win XP. Перепробовал все варианты написания - ничего не помогло, всегда одна и та же ошибка
Код
Не удалось найти часть пути "c\p\имяфайла.jpg".
К сожалению, работы только на вин7-8 не достаточно, нужно еще и на хп.
Надеюсь на вашу помощь, а именно как исправить эту ошибку на ХП или чем заменить этот метод копирования на работающий в обеих операционках.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2012, 18:42
Ответы с готовыми решениями:

Настройка сети winXP - winXP winXP-win7 win7-win7
Снёс я win7. локальная сеть работает. Выхода в и-нет нет. Но почему-то происходит обмен пакетами....

Сеть между Win7 и WinXP - перетаскивание файлов
Есть сеть - настольный WinXp SP3 в него воткнут USB WiFi модуль ASUS Wlan, ноутбук ASUS K50in (Win7...

Соединение двух компьютеров (Win7 и WinXp) для передачи файлов
Как соединять два компьютера через WiFi модем TP LINK для передачи файлов. 1.Ноутбук (Win7)....

Копирование папки работает в Win7, но не работает в WinXP
Есть такой код, который работает на W7 но не работает на ХР(текст ошибки: не удается скопировать...

6
Эксперт .NET
 Аватар для kolorotur
17794 / 12945 / 3381
Регистрация: 17.09.2011
Сообщений: 21,229
16.07.2012, 19:10 2
Перед копированием убедитесь, что директория <папка программы>\c\p\ существует.

Ну и у вас копируется не в папку с программой, а в текующую рабочую папку, которая может и меняться.
0
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 7
16.07.2012, 19:16  [ТС] 3
Цитата Сообщение от kolorotur Посмотреть сообщение
Перед копированием убедитесь, что директория <папка программы>\c\p\ существует.

Ну и у вас копируется не в папку с программой, а в текующую рабочую папку, которая может и меняться.
Директория создана заранее, поэтому да, существует.

Если копируется в текущую рабочую папку, то почему на win7 копирует в папку программы? И как тогда обратиться к папке программы для копирования непосредственно в нее?
0
Эксперт .NET
 Аватар для kolorotur
17794 / 12945 / 3381
Регистрация: 17.09.2011
Сообщений: 21,229
16.07.2012, 19:39 4
Цитата Сообщение от qhd Посмотреть сообщение
Директория создана заранее, поэтому да, существует.
Так вопрос в том, где эта директория "c\p": в рабочей папке или в папке с программой.

Цитата Сообщение от qhd Посмотреть сообщение
Если копируется в текущую рабочую папку, то почему на win7 копирует в папку программы?
Потому что, как я написал в предыдущем сообщении, текущая рабочая папка может меняться. Что на семерке, что на ХР. Причем менять ее могут и другие приложения.

Цитата Сообщение от qhd Посмотреть сообщение
как тогда обратиться к папке программы для копирования непосредственно в нее?
C#
1
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
1
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 7
16.07.2012, 20:27  [ТС] 5
Цитата Сообщение от kolorotur Посмотреть сообщение
Так вопрос в том, где эта директория "c\p": в рабочей папке или в папке с программой.
В папке с программой. Способ с получением пути решил эту проблему, но функция там такая не одна и на них строятся другие части программы.
Можно ли как-то запретить менять рабочую папку или мб есть метод для назначения рабочей папки?
Пусть рабочей папкой будет папка программы, всегда, не зависимо от запуска диалогов. Ведь в вин7 те же действия ошибок не вызывают, значит так и есть.

Добавлено через 13 минут
upd: проблема решена. Для диалогов нужно было установить свойство RestoreDirectory = true. Теперь рабочая папка не изменяется.
0
Эксперт .NET
 Аватар для kolorotur
17794 / 12945 / 3381
Регистрация: 17.09.2011
Сообщений: 21,229
16.07.2012, 20:28 6
Цитата Сообщение от qhd Посмотреть сообщение
Можно ли как-то запретить менять рабочую папку
Вы можете предотвратить ее смену у себя в приложении (например свойство RestoreCurrentDirectory у Open/Save диалогов), но другим-то не запретишь.

Цитата Сообщение от qhd Посмотреть сообщение
мб есть метод для назначения рабочей папки?
Есть, свойство Environment.CurrentDirectory.
1
Kronk
27.07.2012, 02:56 7
Цитата Сообщение от qhd Посмотреть сообщение
Необходимо было создать программу, в ходе выполнения которой приходилось копировать указанные файлы в специальную папку программы с изменением имени. Эта задача выполнялась вот таким кодом:
C#
1
File.Copy(picopn.FileName, "c\\p\\" + rnd1 + "-" + System.IO.Path.GetFileName(picopn.FileName), true);
где picopn - Opendialog, rnd1 - случайное число, уже переведенное в строку
В общем из файла, имя которого берется из диалога, получался файл по адресу <папка программы>\c\p\555-имяфайла.jpg

И все это чудо работает на моей Win 7, а так же семерке друга и подопытной восьмерке, но отказывается работать на Win XP. Перепробовал все варианты написания - ничего не помогло, всегда одна и та же ошибка
Код
Не удалось найти часть пути "c\p\имяфайла.jpg".
К сожалению, работы только на вин7-8 не достаточно, нужно еще и на хп.
Надеюсь на вашу помощь, а именно как исправить эту ошибку на ХП или чем заменить этот метод копирования на работающий в обеих операционках.
Спасибо, долго искал как имя копируемого файла в папку копирования поместить, не знал как его от сюда dataGridView2.SelectedRows[0].Cells[2].Value.ToString() вытащить
27.07.2012, 02:56
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.07.2012, 02:56
Помогаю со студенческими работами здесь

Есть три компа 2 с win7 и 1 c winXP. Лично у меня стоит win7. Проблема в том что пропал общий доступ , не могу подключиться на другие компьютеры
Чтобы не мусорить , задам вопрос здесь. Есть три компа 2 с win7 и 1 c winXP. Лично у меня стоит...

Win7, Winxp
Доброго времени суток. Такой вопрос по 2 ОС как можно узнать состояния этих двух ОС не на глаз а...

Win7 WinXp
что надёжней?

wi-fi в win7 и winXP
есть два ноутбука, на одном семерка на другом XP, и есть USB модем Мегафон.Нужно организовать сеть...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Создание макробота, как способа экономии времени и варианта ИИ.
Hrethgir 28.01.2025
Чисто теоретически, создание ИИ на ПК можно разделить на части. Создать бота отвечающего за железо (эмулирование вкл, выкл, мышь, клавиатура), другой бот осуществляет распознавание изображений,. . .
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru