Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
99 / 99 / 33
Регистрация: 20.09.2014
Сообщений: 444
Записей в блоге: 3
1

Открыть файл в папке AppData\Local

29.11.2016, 23:09. Просмотров 1478. Ответов 11
Метки нет (Все метки)

Всем доброго времени суток!
Вот мои последние изыскания:
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
#pragma once
 
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <stdio.h>
#include <tchar.h>
#include <fstream>
#include <Shlobj.h>
 
#include "stdafx.h"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    TCHAR szPath[MAX_PATH];
    SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, szPath);
 
    wstring dpath;
    for each (wchar_t p in szPath) dpath += p;
 
    wstring fpath(L"\\Test\\Test.txt");
    wstring fullpath = dpath + fpath;
    
    ifstream fin(fullpath);
    if (!fin)
    {
        cout << "File Test.txt not found\n";
        system("pause");
    }
    int i = 0;
    while (!fin.eof())
        ...
    fin.close();
    ...
}
Путь к системной папке находит, но полный путь не хочет складываться, пробовал самому прописывать путь (wstring dpath(L"C:\...")) путь складывается, но поток файл все-равно не открывает.
Прошу помощи
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2016, 23:09
Ответы с готовыми решениями:

Открыть файл во вложенной папке
Добрый день. К примеру главный программный модуль запускается в каталоге ~/current . Мне нужно...

Не могу открыть файл, размещенный в папке с именем на русском языке
Файл на D:\Решетова_Н\Галкин\Всякое Если помещаю файл непосредственно на D - все работает. Думаю...

Какая связь проекта с файлами в папке AppData\Local\Temp\Temporary ASP.NET Files
Разбираю примеры приложений asp.net mvc4 . И во время выполнения (уже в самом браузере) вылетает...

Вирус расплодился в папке C:\Users\.\AppData\Local\Temp. В диспетчере задач отображается как процессы браузеров
В папке temp несколько гигабайт папок с 11-символьными бессмысленными названий. До конца они не...

11
227 / 110 / 79
Регистрация: 17.10.2016
Сообщений: 312
29.11.2016, 23:41 2
Цитата Сообщение от Serg34 Посмотреть сообщение
Путь к системной папке находит,
Так доступа нет вероятно.
0
99 / 99 / 33
Регистрация: 20.09.2014
Сообщений: 444
Записей в блоге: 3
29.11.2016, 23:48  [ТС] 3
John999, Доступ есть. Я этот файл открывал вручную и программно (на C#)
0
227 / 110 / 79
Регистрация: 17.10.2016
Сообщений: 312
29.11.2016, 23:55 4
Цитата Сообщение от Serg34 Посмотреть сообщение
программно (на C#)
Кстати вспомнил, у программ на C# приоритет выше.
Если открыли программой на C#, не откроете С++ программой.
Придется поднатужиться.
Подробности извините не помню.... Нужно у WinApi- шников
спрашивать.
1
99 / 99 / 33
Регистрация: 20.09.2014
Сообщений: 444
Записей в блоге: 3
29.11.2016, 23:57  [ТС] 5
John999, А почему в строчке
C++
1
wstring fullpath = dpath + fpath;
к переменной fullpath не прибавляется fpath?
0
227 / 110 / 79
Регистрация: 17.10.2016
Сообщений: 312
30.11.2016, 00:03 6
какая-то загадка
0
160 / 101 / 14
Регистрация: 17.10.2012
Сообщений: 488
30.11.2016, 03:10 7
Кстати, а зачем вы строку инициализируете таким способом?
Цитата Сообщение от Serg34 Посмотреть сообщение
for each (wchar_t p in szPath) dpath += p;
Почему просто не передать массив в конструктор?
C++
1
wstring dpath(szPath);
Какая-то особенность работы функции SHGetFolderPath?
1
99 / 99 / 33
Регистрация: 20.09.2014
Сообщений: 444
Записей в блоге: 3
30.11.2016, 07:53  [ТС] 8
iRomul, С русскими символами был косяк.
Сейчас попробовал - уже нормально получается wstring dpath(szPath) и конкатенация пути проходит нормально и файл открывается. Может и в этой строчке было дело..
Вобщем, как говорится утро вечера мудренее
0
Ушел с форума
Эксперт С++
16406 / 7381 / 1184
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
30.11.2016, 09:47 9
Цитата Сообщение от John999 Посмотреть сообщение
Кстати вспомнил, у программ на C# приоритет выше.
Все процессы равны перед системой, от языка это не зависит.
С какими правами запустишь программу - с такими она и будет работать.
2
227 / 110 / 79
Регистрация: 17.10.2016
Сообщений: 312
30.11.2016, 10:59 10
Цитата Сообщение от Убежденный Посмотреть сообщение
от языка это не зависит.
Конечно язык здесь не причем.
Извините что неясно выразился. Имел в виду приложения работающие
под управлением CLR.
Цитата Сообщение от Убежденный Посмотреть сообщение
С какими правами запустишь программу - с такими она и будет работать.
И до вашего ответа считал, что в файлах управляемой сборки
есть таинственный атрибут вроде System.Security.AccessControl.Above-Average.
Но пока ничего не нашел
0
Ушел с форума
Эксперт С++
16406 / 7381 / 1184
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
30.11.2016, 12:00 11
Цитата Сообщение от John999 Посмотреть сообщение
Имел в виду приложения работающие под управлением CLR.
И CLR здесь тоже не при чем

Проверка прав при попытке открыть объект - это, по сути, проход по списку пользователей и групп,
заданных в списке контроля доступа объекта и поиск соответствующих SID-ов в токене потока или
процесса, который запрашивает доступ. На Vista и выше также проверяются метки целостности
объекта (Integrity Levels), а на Windows 8 и выше - разрешения для AppContainer.
Про CLR система безопасности Windows "ничего не знает" и если, например, у токена твоего
процесса отсутствует SID нужной группы, то доступ к объекту, который можно открывать только
членам данной группы, твой процесс не получит, независимо от каких-либо атрибутов сборки.
2
227 / 110 / 79
Регистрация: 17.10.2016
Сообщений: 312
30.11.2016, 12:04 12
Убежденный, спасибо за объяснение.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2016, 12:04

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

Путь до папки local (appdata)
Проблема, работаю на Windows 10, использую Environment.GetEnvironmentVariable(&quot;LocalAppData&quot;) +...

Что за папка \AppData\Local\Temp?
что за папка C:\Users\Name\AppData\Local\Temp ? Добавлено через 20 секунд wind7

Как почистить папку C:\Users\****\AppData\Local\Google\Chrome
Размер папки C:\Users\****\AppData\Local\Google\Chrome достиг 3 гигов, (Application 1гиг User...

C:\Users\A4F7~1\AppData\Local\Temp\234429Log.iniis lost
Такое окошко с ошибкой возникает при загрузке системы. Проблема появилась после чистки папки Temp


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.