C не видит файл
Я переношу свой код с Python и никогда не испытывал никаких проблем с этим. Спасибо заранее!
Это очень странно. Компьютер уверен, что нет файла attacks.txt в каталоге D:\Users\Andrey\Desktop\Turn\character\ , но вы говорите, что он определенно существует. Один из вас, должно быть, ошибается, и за эти годы я узнал, что компьютеры работают чаще, чем я.
Вы уверены, что ваш файл имеет расширение .txt , а не расширение .txt.somethingelse ? Если в оболочке Windows отключено отображение расширений файлов, возможно, вам не потребуется дополнительное расширение файла. Однако компьютер не пропускает его внутри, и он видит это как совершенно другой файл, чем тот, который вы запросили. То, что та же проблема > этот парень имел.
Чтобы повторно настроить проводник Windows:
- Откройте папку “Панель управления”.
- Нажмите “Параметры папки”.
- Перейдите на вкладку “Просмотр”.
- Найдите в списке элементов в списке “Расширенные настройки” переключатель “Показать скрытые файлы, папки и диски” и убедитесь, что он выбран.
- Нажмите “ОК”.
Другие ответы на этот вопрос действительно дают некоторые полезные советы. Среди них:
Я думаю, потому что у вашего имени файла есть “\”, он может испортить его и сказать ему, чтобы он смотрел в папку символов для файла attacks.txt.
изменить: или, по крайней мере, похоже, что вы говорите ему, что ваш файл имеет косую черту. Является ли путь к файлу, который он дает вам в ошибке, фактическое местоположение файла на вашем компьютере?
Да, если вы замените “/” на “\”, вы получите недопустимую ошибку символа.
Попробуйте сделать это с помощью двух косых черт
- Разделитель путей в Posix равен / , а Windows – \ .
- Используйте Directory.GetCurrentDirectory , чтобы убедиться, что текущий каталог верен.
- Если текущий каталог неверен, используйте полный путь или измените текущий каталог Directory.SetCurrentDirectory
Это потому, что вы создали текстовый файл, поэтому он автоматически имеет расширение .txt. Поэтому, если вы намеренно добавляете .txt, то файл теперь является на самом деле attack.txt.txt.
Я в программировании недавно так, что особо строго не судите о моих вопросах .
Проблема в следующем:
пытаюсь заставить его прочитать файл ttt2.txt . но он упорно его не видит
закинул его в папку с проектом
C:\Users\user\Desktop\Рамис\С++\чтение и запись из файла\чтение и запись из файла
туда же сохраняется файл если программу перестроить не на чтение, а на запись файла . пытаюсь програмку заставить прочитать его - но то же ничего не получается .
подскажите в чем может быть проблема . заранее спасибо.
P.S. Если это важно - пишу в Visual Studio 2012
Программа не видит файл
Здравствуйте! Такая проблема: нужно было написать программу, которая будет считывать с файла.
Программа не видит файл
using System; using System.Text; using System.Text.RegularExpressions; using System.IO; .
Программа не видит файл
Программа не видит xlsx файл если не прописать полный путь. Как можно избавится от этого не.
Программа не видит INI файл
Вообщем. Находится в папке с прогой INI файл, пытаюсь его подрубить к проге, не получается. В нем.
Если открываешь файл для чтения, всегда проверку делай на открытие. Расширения файлов в системе видны?
Добавлено через 1 минуту
Путь к проектам , там присутствуют русские буквы и пробелы , может это влияет.
Попробуй файл закинуть в корень диска C:\ вот так
Студии по барабану это.
Добавлено через 4 минуты
Кстати, в файле что?
Путь к проектам , там присутствуют русские буквы и пробелы , может это влияет.
Попробуй файл закинуть в корень диска C:\ вот так
То есть необходимо прописать полностью путь? . в моем случае это:
ifstream f("C:\Users\user\Desktop\Рамис\С++\чтение и запись из файла\чтение и запись из файла\ttt2.txt");
Я правильно понял идею (сейчас на работе - проверить теорию не могу)?
Добавлено через 53 секунды
Если открываешь файл для чтения, всегда проверку делай на открытие. Расширения файлов в системе видны?
Добавлено через 1 минуту
Расширения файлов - нет . в винде не ставил - но смотрел свойства файла . стоит .txt
Еще пробывал переименовать записанный файл со внесением в него данных - думаю, что все таки проблема в разрешении файла . но ничего не получилось - проблема осталась .
Это я так понимаю проверка на правильность файла с которого идет загрузка?
Ответы 2
Во-вторых: File.Exists () действует только в локальной файловой системе. Похоже, вы имели в виду именно это, но если вы ожидаете, что это будет проверяться на удаленном веб-сервере, это не сработает.
В-третьих: есть несколько причин, по которым File.Exists () может возвращать false, даже если файл существует. Убедитесь, что вы прочитали все документы, но проблемы с разрешениями и искаженные пути также могут привести к возврату false.
Четвертое: файловая система - летучий, что означает, что обычно не рекомендуется использовать File.Exists () в первую очередь. Намного лучше просто попытаться открыть файл и обработать исключение в случае неудачи.
1) FilePath содержит правильный путь 2) Я работаю с локальной файловой системой сервера 3) не уверен в разрешениях 4) не могу прочитать файл в FileStream
Компилятор создает ошибку C1083, когда не удается найти требуемый файл. Эта ошибка имеет несколько возможных причин. Наиболее распространенными причинами являются неверный путь поиска include или отсутствующие или неправильно именованные файлы заголовков, но другие типы файлов и проблемы могут также вызвать C1083. Ниже приведены некоторые распространенные причины, по которым компилятор создает эту ошибку.
Решение
ifstream f("C:\Users\user\Desktop\Рамис\С++\чтение и запись из файла\чтение и запись из файла\ttt2.txt");
Да , все верно , только вместо одного бэкслэша нужно ставить два . Например : "C:\\Users\\user\\Desktop\\и т.д.\\ttt2.txt"
И вообще попробуй еще раз говорю в корень диска указать путь , как я выше написал. А то пока вобьешь
путь до своего файла , где нить можешь ошибиться . Вообще директория с проектом считается директорией по умолчанию , если ты напишешь просто ifstream f("ttt2.txt"); то там (директория с проектом ) должен быть файл ttt2.txt иначе ошибка, название файла тоже проверь.
Да проверка , установлена связь с файлом или нет .
Да , все верно , только вместо одного бэкслэша нужно ставить два . Например : "C:\\Users\\user\\Desktop\\и т.д.\\ttt2.txt"
И вообще попробуй еще раз говорю в корень диска указать путь , как я выше написал. А то пока вобьешь
путь до своего файла , где нить можешь ошибиться . Вообще директория с проектом считается директорией по умолчанию , если ты напишешь просто ifstream f("ttt2.txt"); то там (директория с проектом ) должен быть файл ttt2.txt иначе ошибка, название файла тоже проверь.
Добрый вечер.
Имеется программа, для которой требуется считывание значений из файла формата txt.
В программе сделал проверку:
Когда запускаю программу отдельно от xcode (просто открываю скомпилированный консольный файл) вижу что выполняется условие теста и соответственно программа не видит файл.
При запуске из xcode (cmd + R) все в порядке, программа работает.
Местоположение исполняемого файла не менял, лежит там же, где его создал xcode.
words.txt лежит в одной папке с исполняемым файлом.
Программа пытается искать файл в текущей папке. Чтобы программа искала файл в той же папке, где лежит ее выполняемый файл, нужно взять argv[0], вырезать из него имя программы, поставить на это место имя файла и использовать полученное значение.
Признаться, я только начал изучать c++(хотя по вопросу итак понятно наверно) и я пока что не знаю что такое argv[0], пока что понял, что это аргументы программы и обычно их указывают в main().
Если вам не трудно, то могли бы написать чуть подробней, в соответствии конкретно с моей задачей.
В данный момент я никаких аргументов не указывал.
Илья: когда вы пишите int main(int argc,char* argv[]),
вы объявляете функцию, которую вызовет в вашей программе операционная система при запуске программы. В качестве параметров будут переданы количество аргументов argc (не меньше одного!) и сами аргументы - массив argv, при этом argv[0] всегда содержит полный путь до выполняемого файла программы. Остается вырезать из этого пути все до первого слеша справа и вставить на это место имя вашего файла.
Армянское Радио, в argv[0] лежит не путь к исполняемому файлу, там указывается директория в которой должна работать программа, она не обязана совпадать с реальным местом положением исполняемого файла.
Станислав Силин: К сожалению, вы неправы. Можете написать тестовую программу и проверить себя. Так называемая "рабочая директория" - это директория, в которую переходит ОС перед запуском программы.
Армянское Радио: Вначале программы я вывел argv[0] на экран через cout.
Там я собственно вижу путь и в конце (до первого слеша справа) имя программы, которе итак совпадает с тем, что я вижу в имени исполняемого файла в finder.
В общем проблему я так и не решил.
Тут либо я дурак и не правильно вас понял, либо лыжи не едут. Скорей всего второе.
File.Exists в любом случае возвращает false независимо от того, существует файл или нет.
Вы абсолютно уверены, что путь, который вы создаете, правильный? Какую ценность вы передаете для dir ? Вы проверили значение FilePath с точкой останова, чтобы убедиться, что оно соответствует местоположению вашего файла?
Какое значение вы получаете в переменной FilePath ? Можете ли вы поделиться некоторыми его значениями, для которых, по вашему мнению, он должен возвращать истину и ложь.
Технически вы вызываете правильную функцию, и ваша проблема может заключаться в двух вещах. У вашего программного обеспечения нет доступа к этому пути к файлу, чтобы проверить, существует ли файл или путь неверен. Не могли бы вы предоставить более подробную информацию, вы отлаживаете? ты в веб-приложении?
@DavidLebee Я пишу простой веб-сервер
Какое значение точный у FilePath ? Какое значение точный у dir ?
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно.
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей.
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то.
Проблемы с библиотекой сторонних производителей и vcpkg
если вы видите эту ошибку при попытке настроить библиотеку стороннего производителя в рамках сборки, рассмотрите возможность использования vcpkg, диспетчера пакетов C++ для установки и сборки библиотеки. vcpkg поддерживает большой и растущей список библиотек сторонних производителейи задает все свойства конфигурации и зависимости, необходимые для успешной сборки в рамках проекта.
Файл находится в проекте, но не в пути поиска включаемых файлов
Чтобы устранить эту проблему, исправьте путь, используемый компилятором для поиска включаемого или импортируемого файла. В новом проекте используются пути поиска include по умолчанию. Может потребоваться изменить путь поиска include, чтобы добавить каталог для проекта. При компиляции в командной строке добавьте путь к переменной среды include или /I параметр компилятора, чтобы указать путь к файлу.
чтобы задать путь к каталогу включения в Visual Studio, откройте диалоговое окно страницы свойств проекта. выберите VC++ каталоги в разделе свойства конфигурации в левой области, а затем измените свойство включаемые каталоги . дополнительные сведения о каталогах для отдельных пользователей и проектов, поиск которых выполняется компилятором в Visual Studio, см. в разделе страница свойств VC++ directories. Дополнительные сведения о параметре компилятора см. в /I разделе /I (дополнительные каталоги включаемых данных).
Файл не включен в путь поиска включаемых файлов
Это указывает компилятору искать файл в том же каталоге, который содержит исходный файл, а затем искать в других местах, заданных средой сборки. Если кавычки содержат абсолютный путь, компилятор выполняет поиск файла только в этом расположении. Если кавычки содержат относительный путь, компилятор выполняет поиск файла в каталоге относительно исходного каталога.
Если имя заключено в угловые скобки,
Если включаемые файлы находятся в другом каталоге относительно исходного каталога и в директивах Include используется относительный путь, то вместо угловых скобок следует использовать двойные кавычки. Например, если файл myheader.h заголовка находится в подкаталоге именованных заголовков проекта, в этом примере не удается найти файл и вызывается C1083:
но этот пример работает:
Не задана среда командной строки INCLUDE или LIB
Если компилятор вызывается из командной строки, для указания путей поиска часто используются переменные среды. Если путь поиска, описанный в переменной среды include или lib , задан неправильно, может быть сформирована ошибка C1083. Мы настоятельно рекомендуем использовать ярлык командной строки разработчика, чтобы задать базовую среду для сборок с командной строкой. Дополнительные сведения см. в разделе сборка C/C++ в командной строке. Дополнительные сведения об использовании переменных среды см. в разделе инструкции. Использование переменных среды в сборке.
Возможно, файл заблокирован или используется
Если для изменения или доступа к файлу используется другая программа, файл может быть заблокирован. Попробуйте закрыть файл в другой программе. иногда другая программа может быть Visual Studio сама по себе при использовании параметров параллельной компиляции. Если отключить параметр параллельной сборки, то эта ошибка исчезнет, а это проблема. Эта проблема также может быть вызвана другими системами параллельной сборки. Будьте внимательны при задании зависимостей файлов и проектов, чтобы порядок сборки был правильным. В некоторых случаях рекомендуется создать промежуточный проект для принудительного создания последовательности зависимостей для общего файла, который может быть создан несколькими проектами. Иногда антивирусные программы временно блокируют недавно измененные файлы для проверки. Если возможно, рассмотрите возможность исключения каталогов сборки проекта из антивирусного сканера.
Указано неверное имя файла
При вводе имени файла допущена ошибка. Например, примененная к объекту директива
может не найти файл, который вы хотели. Большинство файлов заголовков стандартной библиотеки C++ не имеют расширения h. . Чтобы устранить эту проблему, убедитесь, что указано правильное имя файла, как в следующем примере:
Включена неправильная версия имени файла
Предкомпилированные заголовки еще не скомпилированы
Если проект настроен для использования предварительно скомпилированных заголовков, необходимо создать соответствующие .pch файлы, чтобы можно было скомпилировать файлы, использующие содержимое заголовка. например, pch.cpp файл ( stdafx.cpp в Visual Studio 2017 и более ранних версий) автоматически создается в каталоге проекта для новых проектов. Сначала необходимо скомпилировать этот файл, чтобы создать предкомпилированные файлы заголовков. В типичном проекте процесса сборки это выполняется автоматически. Дополнительные сведения см. в разделе Создание предкомпилированных файлов заголовков.
Дополнительные причины
Вы установили пакет SDK или библиотеку стороннего производителя, но после установки пакета SDK или библиотеки не открывали новое окно командной строки разработчика. Если пакет SDK или библиотека добавляет файлы в путь поиска включаемых файлов, может потребоваться открыть новое окно командной строки разработчика, чтобы получить эти изменения переменных среды.
Файл использует управляемый код, но параметр /clr компилятора не указан. Дополнительные сведения см. в разделе /clr (компиляция среды CLR).
Файл компилируется с использованием другого /analyze параметра компилятора, чем используется для предварительной компиляции заголовков. При предварительной компиляции заголовков для проекта все должны использовать одни и те же /analyze Параметры. дополнительные сведения см. в разделе /analyze (Code Analysis).
файл или каталог был создан подсистема Windows для Linux, учитывается регистр в каждом каталоге, и указанный регистр пути или файла не соответствует регистру пути или файла на диске.
Файл, каталог или диск доступен только для чтения.
Visual Studio или средства командной строки не имеют достаточных разрешений для чтения файла или каталога. это может произойти, например, когда файлы проекта имеют разные права владения, чем процесс, выполняемый Visual Studio или программ командной строки. иногда эту ошибку можно устранить, запустив Visual Studio или командную строку разработчика от имени администратора.
Недостаточно дескрипторов файлов. Закройте часть приложений и повторите компиляцию. Эта ситуация маловероятна в обычных условиях. Однако она может возникать при построении крупных проектов на компьютере с ограниченной физической памятью.
Пример
В следующем примере создается ошибка C1083, если файл "test.h" заголовка не существует в исходном каталоге или в пути поиска include.
Сведения о том, как создавать проекты C/C++ в интегрированной среде разработки или в командной строке, а также сведения о настройке переменных среды см. в разделе проекты и сборки систем.
Читайте также: