forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Работа с внешними файлами и папками в C++ (http://forum.boolean.name/showthread.php?t=12234)

gforcer18 20.03.2010 18:44

Работа с внешними файлами и папками в C++
 
Поомгите разобраться
Задача №1: Найти Папку Мои Документы на Windows
Что я нашел: нашел метода решения через реестр, но возникли проблемы, в частности C++ ругался, что не может найти заголовнчый файл для работы с заголовками. Пример, которым я пользовался при этом здесь
Задача №2: Узанть, существует ли файл "C://MyFile.txt".
Что я нашел по вопросу: Boost FilesSystem Library. Но так и не разобрался и не сумел запустить нормально.

Прошу помочь, показать или лучше написать пример поиска файла и (или) папки Мои Документы на C++.
Или хотя бы подскажите где искать, MSDN не предлгать.
:SOS:

Mhyhr 20.03.2010 19:14

Ответ: Работа с внешними файлами и папками в C++
 
Примитивно проверить существование файла можно например так...

Цитата:

ifstream file("C://MyFile.txt");
if(file.fail())
{
MessageBoxA(0,"Нету файла!!" ,"ME",0);
exit(0);
}
file.close();
Для возврата адресов системных папок(без гемороя по словам афторов) видел где-то маленькую DLL.
Если надо загуглишь вообщем =)

gforcer18 21.03.2010 08:06

Ответ: Работа с внешними файлами и папками в C++
 
покапавшись в проклятом и запутанном MSDN все-таки нашел. Вот:
Код:

#include <stdio.h>//Подключяем для работы с потоками в файлах
if (fp=fopen(("C://MyFile.txt",r)) == NULL)
;Тут что делать, если файла нет
printf("Файла нет");
;Тут остальной код

stdio.h - стандартная либа для работы с потоками
r - режим работы с файлом, r - только для чтения.
Перед применением следует объявить указатель на структуру FILE, например *fp.
:)

gforcer18 21.03.2010 13:02

Ответ: Работа с внешними файлами и папками в C++
 
другая проблема.
Знаю как прочитать весь файл и все его содержимое скопировать в переменную или массив.
Вот пример:
Код:

//Подключаем для работы с файлами и потока I\O
using namespace System::IO; //Для ввода\вывода
using namespace System::Text;

        void ReadTextFromFile(String ^File,TextBox ^tb)
                {
                        tb->Multiline=true;
                        tb->Clear();
                        tb->Lines=File::ReadAllLines(File);//Возвращает String[]
                }

Но как можно сделать, чтобы построчно читать содержимое ? методы класса по MSDN сомтрел, так и не нашел аналога команды
string-переменная=ReadLine(fileStream) из Бейсика.
Помогите пожалуйста.:(

Mhyhr 21.03.2010 13:37

Ответ: Работа с внешними файлами и папками в C++
 
Эммм... это так сложно?

PHP код:

#include <fstream>
using namespace std;
...

ifstream File("C://MyFile.txt");
string Line;
getline(File,Line);//ВОТ ТУТ! читаем строку и записываем в Line

... 

КУРИИ ПООООТОКИ!!! =)

h1dd3n 26.03.2010 23:43

Ответ: Работа с внешними файлами и папками в C++
 
Так как я только вкурил что ты используешь .net то вот решения для 1 поста (примеры на c#, но там все интуитивно понятно):
1) Используй перечисление Environment.SpecialFolders. Чтобы получить путь как строку пользуйся Environment.GetFolderPath(). Пример:
PHP код:

string Path Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 

2) Используй метод File.Exists(). Пример:
PHP код:

if (File.Exists(@"c:\text.supertext.exe"))
{
    
Console.WriteLine("Существует!");
}
else
{
    
Console.WriteLine("Не существует!");


Только надо добавить в начало программы:
PHP код:

using System.IO



Часовой пояс GMT +4, время: 20:58.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot