С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237

Создание XML файла в папке приложения

06.02.2015, 12:36. Показов 2187. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Такая проблема, сохраняю XML файл. в папке проекта сохраняет нормально. А вот если программу размещаю в папке ProgramFiles, то программа выдает сообщение об ошибке, и закрывается
VB.NET
1
        Dim myXml As New XmlTextWriter("Settings.xml", System.Text.Encoding.GetEncoding(1251))
что можно сделать.
Пример брад от сюда http://vbnet.su/articles/xml/5.html
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2015, 12:36
Ответы с готовыми решениями:

Создания XML файла не в папке приложения, а в пользовательской
Вот у меня есть такой код XmlTextWriter writer = new XmlTextWriter( "имя файла", Encoding.UTF8); Он создает XML файл в папку...

Выгрузка в XML файл результатов запроса. Создание xml схемы с имеющегося xml файла
Доброго времени суток. Имеется необходимый для загрузки пример XML файла и из него необходимо построить XML схему для выгрузки данных...

Создание файлов в папке приложения
Добрый вечер. Не могу разобраться с одним вопросом. Есть код: private void Form1_Load(object sender, EventArgs e) { ...

20
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
06.02.2015, 14:02
Цитата Сообщение от mega2411 Посмотреть сообщение
А вот если программу размещаю в папке ProgramFiles, то программа выдает сообщение об ошибке, и закрывается
запускать от имени админа. Или же предусмотреть сохранение в папку? например эту https://msdn.microsoft.com/ru-... ndata.aspx
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 18:13  [ТС]
Юпатов Дмитрий, не подходит вариант

Добавлено через 25 секунд
нужно сохранение именно в папку с программой

Добавлено через 48 минут
вот какую ошибку выдает

как можно это решить
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
06.02.2015, 18:22
Цитата Сообщение от mega2411 Посмотреть сообщение
нужно сохранение именно в папку с программой
Если Вы не уверены, что у программы будут права, а на скрине очевидно, что их нет, то не нужно писать что-то в ее директорию.
Юпатов Дмитрий уже ответил на вопрос: дать приложению права. Иначе оно работать не будет. Такова политика безопасности системы.

В Program Files Вы должны держать саму программу и ее компоненты. Все, что она пишет, сохраняет - в папке приложений, она так и называется - AppData - "данные приложений". Создана именно для этого.

Возьмите простейший пример - гугл-хром или та же Мазила. Никто не хранит ничего в Program Files. Все в "апликейшенах"
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 18:29  [ТС]
Цитата Сообщение от Памирыч Посмотреть сообщение
сохраняет - в папке приложений, она так и называется - AppData - "данные приложений"
я программу использую для определенного типа файлов. при открытии данного типа файлов, все настройки сбрасываются. при нажатии на кнопки "сохранить" настройки сохраняются туда где прошла инициализация(т.е открыл файл text.txt в папке в d:\папка. Нажал в настройках кнпку сохранить и настройки сохранились в эту папку). Уже пробовал в папку AppData сохранять. при открытии через ярлык программы все нормально. а если на файл *.txt то не нормально.

Добавлено через 14 секунд
вот как быть в данной ситуации
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
06.02.2015, 18:38
Цитата Сообщение от mega2411 Посмотреть сообщение
настройки сохраняются туда где прошла инициализация(т.е открыл файл text.txt в папке в d:\папка
в смысле, настройки программы индивидуальны для каждого файла, что ли? Сохраняй тогда их в него.
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
06.02.2015, 18:38
mega2411, ну так бывает, когда не указан нормальный путь
Цитата Сообщение от mega2411 Посмотреть сообщение
VB.NET
1
Dim myXml As New XmlTextWriter("Settings.xml"
У Вас в коде написано:
Сохранять файл в текущую директорию, но не директорию приложения.
Текущая директория может отличаться от директории программы.
Если Вы что-то открыли на диске D, текущая папка изменится. И приложение, работающее с относительными путями, как у Вас, считает, что лежит не в Program Files, а на диске D.

Для начала Вам нужно прописать пути. Старайтесь не использовать относительные пути, это в 99% случаев играет злую шутку
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 18:38  [ТС]
Цитата Сообщение от Юпатов Дмитрий Посмотреть сообщение
настройки программы индивидуальны для каждого файла, что ли?
в том то и дело что нет
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 18:41  [ТС]
VB.NET
1
Dim myXml As New XmlTextWriter(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData & "\Settings.xml", System.Text.Encoding.Unicode)
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 18:44  [ТС]
загрузка настроек
VB.NET
1
            Dim myXml As New System.Xml.XPath.XPathDocument(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData & "\Settings.xml")
Добавлено через 37 секунд
рабботает не так как надо
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
06.02.2015, 18:50
Цитата Сообщение от mega2411 Посмотреть сообщение
рабботает не так как надо
т.е. считаешь, что дело в пути к файлу настроек?
Т.е. если заменить My.Computer.FileSystem.SpecialDirectorie s.CurrentUserApplicationData на путь к папке программы все станет пучком.
Не, чудес не бывает, проблема у тебя в другом месте.
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 18:51  [ТС]
и в каком же
до того как засунул программу в ProgramFiles , она была на диске D:\ . все работало как надо.
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
06.02.2015, 18:54
Цитата Сообщение от mega2411 Посмотреть сообщение
работает не так как надо
Как именно не работает?
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 18:54  [ТС]
и путь к файлу настроек был к папке исполняемого файла. и все работало
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 18:55  [ТС]
на первой картинке как должно
на второй как получается
Миниатюры
Создание XML файла в папке приложения   Создание XML файла в папке приложения  
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
06.02.2015, 18:57
Цитата Сообщение от mega2411 Посмотреть сообщение
и в каком же
в месте интерпретации считанных настроек, думаю.
Цитата Сообщение от mega2411 Посмотреть сообщение
до того как засунул программу в ProgramFiles , она была на диске D:\ . все работало как надо.
чудес не бывает. Program files отличается от других папок только необходимостью админправ
0
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 19:05  [ТС]
и как получить права админа на программном уровне
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
06.02.2015, 19:06
Цитата Сообщение от Юпатов Дмитрий Посмотреть сообщение
необходимостью админправ
не совсем верное утверждение, но в первом приближении пойдет.
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
06.02.2015, 19:06
Цитата Сообщение от mega2411 Посмотреть сообщение
на первой картинке как должно
на второй как получается
стыдно признаться, но в гадании по скриншотам я полный профан
1
0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 237
06.02.2015, 19:24  [ТС]
VB.NET
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
44
45
46
Public Sub New()
        InitializeComponent()
        If Environment.GetCommandLineArgs.Length > 1 Then
            _Visible(1)
        Else
            _Visible(2)
        End If
    End Sub
 
    Private Sub _Visible(_i As Integer)
        Select Case _i
            Case 1
                Grid2.Visibility = Windows.Visibility.Visible
                Grid1.Visibility = Windows.Visibility.Hidden
            Case 2
                Grid1.Visibility = Windows.Visibility.Visible
                Grid2.Visibility = Windows.Visibility.Hidden
        End Select
        CB1.ItemsSource = ThemeManager.AppThemes
        CB2.ItemsSource = ThemeManager.Accents
 
        f = My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData
        '    f = Environment.CurrentDirectory.
 
 
        ' '  f = IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).Substring(6)
        'Environment.GetEnvironmentVariable("TEMP") & "\iV" '
        If Not IO.File.Exists(f & "\Settings.xml") Then
            TimeSec = 6
            TextB.Value = CStr(TimeSec)
            CB1.SelectedIndex = 1
            CB2.SelectedIndex = 2
        Else
            On Error Resume Next
            Dim myXml As New System.Xml.XPath.XPathDocument(f & "\Settings.xml")
            _Version = ReadSettings(f & "\Settings.xml", "/Settings/System/@Version")
            CB.SelectedIndex = ReadSettings(f & "\Settings.xml", "/Settings/Interface/@Language")
            CB1.SelectedIndex = ReadSettings(f & "\Settings.xml", "/Settings/Interface/@Theme")
            CB2.SelectedIndex = ReadSettings(f & "\Settings.xml", "/Settings/Interface/@Color")
            TimeSec = ReadSettings(f & "\Settings.xml", "/Settings/Interface/@Time_Slide_Show")
            TextB.Value = CStr(TimeSec)
            UpCheck.IsChecked = ReadSettings(f & "\Settings.xml", "/Settings/Updates/@Update")
        End If
        IgnoreTaskbarOnMaximize = Not IgnoreTaskbarOnMaximize
        MetroDialogOptions.ColorScheme = MetroDialogColorScheme.Accented
    End Sub
Добавлено через 25 секунд
так загружаются настройки

Добавлено через 2 минуты
VB.NET
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
TimeSec = CInt(TextB.Value)
        Dim myMemoryStream As New IO.MemoryStream
        Dim myXml As New XmlTextWriter(f & "\Settings.xml", System.Text.Encoding.Unicode)
        myXml.WriteStartDocument()
        myXml.Formatting = System.Xml.Formatting.Indented
        myXml.Indentation = 2
        myXml.WriteStartElement("Settings")
        myXml.WriteStartElement("System")
        myXml.WriteAttributeString("Version", ver.ToString)
        myXml.WriteEndElement()
        myXml.Flush()
        myXml.WriteStartElement("Interface")
        '   myXml.WriteAttributes("Language", CB.SelectedIndex)
    
        myXml.WriteAttributeString("Language", CB.SelectedIndex)
        myXml.WriteAttributeString("Theme", CB1.SelectedIndex)
        myXml.WriteAttributeString("Color", CB2.SelectedIndex)
        myXml.WriteAttributeString("Time_Slide_Show", TimeSec)
        myXml.WriteEndElement()
        myXml.Flush()
        myXml.WriteStartElement("Updates")
        myXml.WriteAttributeString("Update", UpCheck.IsChecked)
        myXml.WriteEndElement()
        myXml.WriteEndElement()
        myXml.Flush()
        myXml.Close()
        Fly.IsOpen = Not Fly.IsOpen
так сохраняю настройки

Добавлено через 13 минут
Цитата Сообщение от Юпатов Дмитрий Посмотреть сообщение
в гадании по скриншотам я полный профан
коды написал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2015, 19:24
Помогаю со студенческими работами здесь

Создание txt файла с текстом, полученным из названия файла в папке
Здравствуйте! В папке содержится огромное число файлов (более 300 тыс в каждой папке), которые имеют следующие названия: ...

Вывод заданной части определённой строки каждого XML-файла в указанной папке
Добрый день! Есть папка, в которую закачиваются файлы с ftp несколько раз в день. Названия файлов типа:3143719278_1605201290029.xml ...

Создание файла в папке
Добрый день. Помогите пожалуйста. Захожу в скрипт выбираю картинку , имя папки , и нажимаю добавить. Все добавляет и создает, но не...

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

Создание файла в папке с программой
File.WriteAllText("C:\\Users\\Asus\\Desktop\\Log.txt", textbox1.Text); C:\\Users\\Asus\\Desktop\\Log.txt Надо заменить на место где...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru