powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Чтение пути из XML, переименование фала
11 сообщений из 11, страница 1 из 1
Чтение пути из XML, переименование фала
    #38456391
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! Помогите пожалуйста!

Есть xml файл. В нём список файлов. файли из секции download надо переименовать.

Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<root>
	<storage>
		<server name="R2D2" login="sa" password="345">
			<database name="velmeat">
				<schema name="dbo">
					<table name="t_FilesUpdate">
						<field name="date" purpose="Date" />
						<field name="filename" purpose="Filename" />
						<field name="binary" purpose="Binary" />
						<field name="version" purpose="Version" />
						<field name="checksum" purpose="Checksum" />
					</table>
				</schema>
			</database>
		</server>
	</storage>
	<upload>
		<file path="C:\Labels\1) 58 х 59  Ярмарочный\f34.dat" key="Label_01.f34" />
		<file path="C:\Labels\1) 58 х 59  Ярмарочный\f38.dat" key="Label_01.f38" />
	</upload>
	<download>
		<file path="D:\K-Solutions\Projects\Updater\TestFolder\Updater.exe" key="Updater.exe" />
		<file path="D:\K-Solutions\Projects\Updater\TestFolder\Updater.pdb" key="Updater.pdb" />
	</download>
	<start>
		<file path="E:\\clean.exe" params="/updater" />
	</start>
</root>



Я считываю список файлов массив строк след. методом:
Код: c#
1.
var files = XDocument.Load("Settings.xml").Root.Descendants("download").Descendants("file").Select(item => new { path = item.Attribute("path").Value, key = item.Attribute("key").Value });



После считывания в массиве строк \ заменяется на \\. Всё бы ничего, но когда я запускаю
Код: c#
1.
File.Move(path, path2 + "." + DateTime.Now);


получаю ошибку о неправильном пути файла.
Везде в примерах используют строки след типа
@"c:\temp\MyTest.txt"

Что значит @?
Как избежать преобразования \ в \\ при чтении XML?
Ну или другой путь решения проблемы?

Заранее благодарен!
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38456400
Syrex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовали не заменять \ на \\?
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38456406
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SyrexПробовали не заменять \ на \\?
Ну это само собой решение. Но хочется понять почему при чтении из XML автоматически происходит замена \ на \\ и как этого избежать. А так же зачем в примерах ставят @ в начале строки.
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38456415
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Syrex, И кстати что у меня не получается написать path.Replace("\\", "\");
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38456419
Syrex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может тут "косяк" в теге file - он и преобразует.

path.Replace("\\\\","\\") - незабываем про экранирование
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38456423
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SyrexМожет тут "косяк" в теге file - он и преобразует.

path.Replace("\\\\","\\") - незабываем про экранирование

После path.Replace("\\\\", "\\") строка не меняется.
После path.Replace(@"\\", @"\") строка не меняется.

Как косяк в теге может повлиять? Где косяк искать?
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38456489
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
File.Move нормально хавает \\. Проблема была в
Код: c#
1.
DateTime.Now

которая действительно давала неверный путь.

Решено таким образом:
Код: c#
1.
File.Move(path, path + "." + DateTime.Now.ToString("yyyymmdd"));



Надо было явно задать формат даты.

Зачем @ я понял. Но у меня так и не получилось преобразовать в строке \\ в \.
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38456494
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Ку., открой для себя сериализацию / десериализацию.
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38456676
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допилю проект (ибо горит) и буду смотреть что за штуки мне посоветовали.

Всем спасибо!
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38457088
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может кто подскажет как мне в одну строковую переменную прочитать параметр path из секции Start?
Код: xml
1.
2.
3.
	<start>
		<file path="E:\\clean.exe" params="/updater" />
	</start>
...
Рейтинг: 0 / 0
Чтение пути из XML, переименование фала
    #38457377
Алексей Ку.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СДелал вот так:

var startpath = XDocument.Load("Settings.xml").Root.Descendants("start").Descendants("file").Attributes("path").First().Value;
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Чтение пути из XML, переименование фала
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]