Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.51/75: Рейтинг темы: голосов - 75, средняя оценка - 4.51
6 / 5 / 1
Регистрация: 12.06.2017
Сообщений: 227

Как найти путь к папке в профиле пользователя?

13.06.2017, 23:30. Показов 16574. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как решить проблему с путём к папке? К примеру есть папка загрузки, которая находится по адресу C:\Users\Имя пользователя\Downloads которую нужно открыть при нажатие на кнопку. Проблема в том что Имя пользователя у каждого компьютера разное как это можно решить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2017, 23:30
Ответы с готовыми решениями:

Получить путь к папке Roaming пользователя через TService
С помощью такой функции получаю путь к папке Roaming текущего пользователя function GetRoamingPath: String; var Buffer: Array of...

Работа с sharpbox. Имя пользователя и путь к синхронизируемой папке
Ребят! Потребовалось получить имя пользователя и путь к синхронизируемой папке в приложении Dropbox Но не знаю, как вытащить их....

Как указать путь к папке и создать массив с ссылками на все файлы в папке?
В моём случае нужно указание директории с видео, создание массива, и тк он будет использоваться в другом методе он должен использоваться по...

24
6 / 5 / 1
Регистрация: 12.06.2017
Сообщений: 227
19.06.2017, 02:54  [ТС]
Студворк — интернет-сервис помощи студентам
Если не сложно что в этом коде нужно заменить?
C#
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            CleanupDirectory(Environment.ExpandEnvironmentVariables(@"%windir%\temp"));
        }
 
        private void CleanupDirectory(string path)
        {
            string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
            Array.Sort(files, (s1, s2) => s2.CompareTo(s1));
            foreach (string file in files)
            {
                try { File.Delete(file); }
                catch { }
            }
 
            string[] directories = Directory.GetDirectories(path, "*.*", SearchOption.AllDirectories);
            Array.Sort(directories, (s1, s2) => s2.CompareTo(s1));
            foreach (string dir in directories)
            {
                try { Directory.Delete(dir); }
                catch { }
            }
        }
    }
}
0
6 / 5 / 1
Регистрация: 12.06.2017
Сообщений: 227
19.06.2017, 03:58  [ТС]
На строчке с кодом
C#
1
string downloadsFolderPath = Path.Combine(Syroot.Windows.IO.KnownFolders.Windows.Path, "Downloads");
Выдаёт ошибку

'Syroot' does not contain a definition for 'Windows'
Миниатюры
Как найти путь к папке в профиле пользователя?  
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18345 / 14271 / 5370
Регистрация: 17.03.2014
Сообщений: 28,948
Записей в блоге: 1
19.06.2017, 11:51
Chesterfield252, судя по цвету идентификатора Syroot Visual Studio считает что это класс. Вообще-то это пространство имен. Похоже ты вставил строку, получил ошибку и согласился с предложением VS создать класс Syroot. Если так, то удали его и установи NuGet пакет Syroot.Windows.IO.KnownFolders.

Другая ошибка заключается в том что ты конструируешь неверный в строке Path.Combine(Syroot.Windows.IO.KnownFolders.Windows.Path, "Downloads"). Это даст папку с именем Downloads внутри папки Windows. Такой папки нет. Тебе видимо нужна папка Downloads в профиле пользователя. Я тебе уже показывал как получить путь к ней. Будь внимательнее.
C#
1
string downloadsFolderPath = Syroot.Windows.IO.KnownFolders.Downloads.Path;
Цитата Сообщение от Chesterfield252 Посмотреть сообщение
что в этом коде нужно заменить?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        private void button1_Click(object sender, EventArgs e)
        {
            CleanupDirectory(Environment.ExpandEnvironmentVariables(@"%windir%\temp"));
            CleanupDirectory(Syroot.Windows.IO.KnownFolders.Downloads.Path);
        }
 
        private static void CleanupDirectory(string path)
        {
            string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
            Array.Sort(files, (s1, s2) => s2.CompareTo(s1));
            foreach (string file in files)
            {
                try { File.Delete(file); }
                catch { }
            }
 
            string[] directories = Directory.GetDirectories(path, "*.*", SearchOption.AllDirectories);
            Array.Sort(directories, (s1, s2) => s2.CompareTo(s1));
            foreach (string dir in directories)
            {
                try { Directory.Delete(dir); }
                catch { }
            }
        }
0
6 / 5 / 1
Регистрация: 12.06.2017
Сообщений: 227
19.06.2017, 14:13  [ТС]
Как быть со второй папкой Temp а то что то я с путями всё ни как не разберусь?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18345 / 14271 / 5370
Регистрация: 17.03.2014
Сообщений: 28,948
Записей в блоге: 1
19.06.2017, 14:18
Лучший ответ Сообщение было отмечено Chesterfield252 как решение

Решение

Chesterfield252, ну да, ведь это так сложно вызвать функцию и передать ей аргумент
C#
1
2
3
4
5
6
7
8
9
10
11
        private void button1_Click(object sender, EventArgs e)
        {
            // Папка для временных файлов в каталоге Windows
            CleanupDirectory(Environment.ExpandEnvironmentVariables(@"%windir%\temp"));
 
            // Папка для временных файлов в профиле пользователя
            CleanupDirectory(Path.GetTempPath());
 
            // Папка для  файлов скачанных из интернетв
            CleanupDirectory(Syroot.Windows.IO.KnownFolders.Downloads.Path);
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2017, 14:18

Найти полный путь к папке, имея только короткое имя
Как найти полный путь к папке имея только короткое имя?

Как удалить путь к папке
Я создал папку и скрыл ёё ввел в командной строке к ней путь и его запомнила командная строка и теперь Я незнаю как его удалить, потомучто...

Как указать путь к папке
Здравствуйте. Хотел спросить, как в линуксе указывать путь к папке? Для примера, я скачал программу Alice, для её работы скачал JRE,...

Как получить путь к папке?
Я пробовал и с CheckBox и с RadioButton, но результат одинаковый - не отрабатывает ветка кода(строки). private static bool check =...

Как указать относительный путь к папке
Доброго времени суток.Столкнулся с такой проблемой: Для вставки картинки в форму использую pictureBox,и собственно указываю путь к...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru