C работа с файлом: открытие и закрытие, чтение и запись данных

Содержание

Команды Linux для работы с файлами и каталогами (директориями) через терминал

Введение

В этом руководстве для начинающих пользователей мы ознакомимся с основными командами для работы с файлами и каталогами (иногда их еще называют директориями) в Linux-системах.

Требования

Cервер с Ubuntu 20.04

Все команды, описанные ниже, будут работать и в других дистрибутивах Linux.

Расположение каталогов в файловой системе

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

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

pwd

Результат выполнения команды выглядит следующим образом:

/home/demo

Домашний каталог располагается после имени учетной записи пользователя, в приведенном примере он называется /demo. Этот каталог находится в каталоге с именем  /home и в каталоге верхнего уровня, который называется root или корневой каталог, поэтому представлен одной косой чертой /.

Просмотр содержимого каталогов

Для просмотра содержимого каталога используется команда ls. Название этой команды является сокращением слов list files.

Просмотреть содержимое любой директории можно следующими способами:

ls имя_директории

Либо введя команду:

ls /путь _к _директории

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

dir1 file1  file2  file3

К команде ls можно добавлять дополнительные флаги, например, чтобы показать детализированное представление (права, список владельцев файлов или папок, размер, дату последнего модифицирования) файлов и директорий в текущей директории, можно использовать флаг -l:

ls -l

Результат выполнения команды:

total 16
drwxr-xr-x 2 home demo 4096 Nov  3 17:40 dir1
-rw-r--r-- 1 home demo   13 Nov  8 17:17 file1
-rw-r--r-- 1 home demo   42 Nov  9 13:04 file2
-rw-r--r-- 1 home demo  42 Nov  10 13:04 file3

Для просмотра списка всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a:

ls -a

Результат выполнения команды:

.        dir1        file1           .mysql_history  .ssh
..      .bash_history  file2   file3  .nan

Отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип, можно с помощью команды:

ls -F

Результат выполнения команды:

dir1/   file1  file2  file3

Перемещение между каталогами

Для перехода в домашний каталог используется команда cd. Название этой команды является сокращением слов change directory.

Для перехода в домашний каталог пользователя user используется команда:

cd ~user

Для перехода в предыдущую директорию, в которой мы находились до перехода в текущую директорию также используется команда cd.

В Linux-системах каждый файл и каталог находятся в самой верхней директории, которая называется «корневой» и обозначается одним символом слэш /.

Абсолютный путь указывает на расположение каталога по отношению к этой директории верхнего уровня. Это позволяет обращаться к справочникам однозначным образом из любого места в файловой системе.

Каждый абсолютный путь должен начинаться с косой черты — символа слэш /.

Для перехода в директорию уровнем выше используется команда:

cd ..

Для перехода в директорию двумя уровнями выше:

cd ../..

Операции с файлами и каталогами

У каждой команды имеется множество параметров, чтобы узнать их, наберите команду и параметр —help, например:

ls --help

Далее приведен список основных команд навигации в консоли Linux.

Создание

Создание файлов производится с помощью команды:

touch имя_файла

Создание каталогов выполняется с помощью команды вида:

mkdir имя_директории

Название этой команды является сокращением слов make directory.

Создание двух каталогов одновременно выполняется с помощью команды:

mkdir   имя_директории_1   имя_директории_2

Для создания дерева каталогов используется команда следующего вида:

mkdir -p  /имя_директории_1/имя_директории_2

Удаление

Для удаления директорий используется команда rmdir имя_директории. Название этой команды является сокращением слов remove directory.

Для удаления файлов используется команда rm. Например, для удаления файла с именем file1 используется команда:

rm file1

Команда rm также позволяет удалять не только файлы, но и каталоги.

Для удаления директории с именем dir1 со всеми подкаталогами и файлами используется опция -r (от слова recursive):

rm -r dir1    

Можно удалить одновременно две директории со всем их содержимым:

rm -r  имя_директории_1   имя_директории_2

Также можно использовать параметр -f, который означает, что при удалении не будет запрашиваться подтверждение.

Команда для удаления файла будет выглядеть так:

rm -f file1

Команда для удаления каталога:

rm -rf dir1

Перемещение

Для перемещения и переименования файлов и каталогов используется команда mv. Название этой команды является сокращением слова move.

Переименовать файл можно с помощью команды:

mv имя_файла новое_имя

Для того чтобы переместить файл, используется команда:

mv имя_файла путь/

Копирование

Для копирования используется команда cp. Название этой команды является сокращением слова copy.

Чтобы скопировать файл file1 и назвать его file2, используется команда:

cp file1 file2

Для того чтобы копировать директорию dir1 в директорию dir2, используется команда:

cp -a dir1/ dir2/

Скопировать файл с именем file1 в директорию с именем dir1, можно с помощью команды:

cp file1 dir1/ 

Редактирование файлов

Мы ознакомились с основными командами для работы с каталогами и файлами.

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

Команда nano позволяет работать в одном из самых простых текстовых редакторов командной строки Linux, который занимает весь терминал в течение всего срока его использования. C Cancel

Вы можете нажать клавишу Y, чтобы сохранить изменения, клавишу N для отмены изменений и выхода, или сочетание клавиш CTRL-C, чтобы отменить операцию выхода из режима редактирования файла.

Если вы решили сохранить изменения, вам будет предложено сохранить их в том же файле, который был отредактирован.

Нажмите клавишу ENTER, чтобы сохранить файл и выйти из редактора.

Заключение

Мы ознакомились с возможностями просмотра доступных файлов и каталогов, с основными командами для работы с файлами, которые позволяют просматривать, копировать, перемещать и удалять файлы, а также с основами редактирования в текстовом редакторе nano.

Linux

Файловые функции VBA

Главная » Функции VBA »

28 Апрель 2011       Дмитрий       99494 просмотров

  • CurDir() — функция, которая возвращает путь к каталогу(для указанного диска), в котором по умолчанию будут сохраняться файлы:
        Dim sCurDir As String
        sCurDir = CurDir("D")
  • Dir() — позволяет искать файл или каталог по указанному пути на диске. Пример использования можно посмотреть в статье: Просмотреть все файлы в папке
  • EOF() — при операции записи в файл на диске эта функция вернет True, если вы находитесь в конце файла. Обычно используется при работе с текстовыми файлами — .txt. При сохранении книг Excel лучше использовать стандартные методы: Save и SaveAs.
  • Error() — позволяет вернуть описание ошибки по ее номеру. Генерировать ошибку нужно при помощи метода RaiseError() специального объекта Er.
  • Print — записывает в открытый файл указанный текст. Далее будет приведен пример использования данной функции
  • FreeFile() — позволяет определить номер следующего свободного файла, который можно использовать как номер файла при его открытии методом Open. Предпочтительно применять именно этот метод определения номера файла(вместо статичного #1), чтобы не было неоднозначности обращения к файлам. Ниже приведены примеры применения данной функции при обращении к файлам
  • FileAttr() — позволяет определить, как именно был открыт файл в файловой системе: на чтение, запись, добавление, в двоичном или текстовом режиме и т. п. Применяется для работы с текстовыми файлами, открытыми при помощи Open "C:\Text1.txt" For [] As #1
    Открыть файл можно несколькими способами, приведу примеры наиболее распространенных вариантов:
    • Input() — открывает текстовый файл на чтение. Т.е. таким методом можно открыть файл и вытянуть из него данные. Например, чтобы считать информацию из файла C:Text1.txt и вывести ее в окно Immediate можно применить такой код:
          Dim MyChar
          Open "C:\Text1.txt" For Input As #1 'Открываем файл функцией Open() на чтение(Input)
          Do While Not EOF(1)  'пока файл не кончился
              ' Получаем по одному символу и добавляем его к предыдущим
              MyChar = MyChar & Input(1, #1)
          Loop
          Close #1 ' Закрываем файл
          'Выводим его содержание в окно Immediate
          '(отобразить Immediate: Ctrl+G в окне редактора VBA)
          Debug.Print MyChar
          'или в MsgBox
          MsgBox MyChar, vbInformation, "www.excel-vba.ru"
    • Ouput() — метод открывает файл для записи. Например, чтобы записать в файл строку, содержащую все ячейки в выделенном диапазоне, можно использовать такой код:
      Sub SelectionToTxt()
          Dim s As String, rc As Range
          Dim ff
          'запоминаем все значения из выделенной строки в строку
          For Each rc In Selection
              If s = "" Then 'если пока ничего не записали - присваиваем только значение ячейки
                  s = rc.Value
              Else 'если уже записано - добавляем через TAB
                  s = s & vbTab & rc.Value
              End If
          Next
          ff = FreeFile
          'Открываем текстовый файл
          'если файла нет - он будет создан
          Open "C:\Text1.txt" For Output As #ff
          'записываем значение строки в файл
          Print #ff, s
          Close #ff ' Закрываем файл
      End Sub

      Важно помнить, что при открытии файла таким методом(Output) все предыдущие данные из файла стираются и в файле будет записано только то, что мы записали в текущем сеансе. Если данные необходимо добавить к имеющимся — используется метод Append

    • Append() — метод открывает файл для записи, но в отличии от Output записывает данные в конец файла, а не перезаписывает текущие данные.
      Например, код добавления выделенных ячеек как одной строки в имеющийся файл будет выглядеть так:
      Sub SelectionToTxt_Add()
          Dim s As String, rc As Range
          Dim ff
          'запоминаем все значения из выделенной строки в строку
          For Each rc In Selection
              If s = "" Then 'если пока ничего не записали - присваиваем только значение ячейки
                  s = rc.Value
              Else 'если уже записано - добавляем через TAB
                  s = s & vbTab & rc.Value
              End If
          Next
          ff = FreeFile
          'Открываем текстовый файл
          'если файла нет - он будет создан
          Open "C:\Text1.txt" For Append As #ff
          'записываем значение строки в файл
          Print #ff, s
          Close #ff ' Закрываем файл
      End Sub
  • FileDateTime() — позволяет получить информацию о последнем времени обращения к указанному файлу. Если к файлу после создания ни разу не обращались, то это будет время создания файла. Если попытаться обратиться к уже открытой книге/файлу — то будет получено время открытия книги/файла, а не создания или сохранения.
        sFileDateTime = FileDateTime("C:\Text1.txt")
  • FileLen() — позволяет определить длину указанного файла в байтах:
        MsgBox FileLen("C:\Text1.txt") & " bites", vbInformation, "www.excel-vba.ru"
  • GetAttr() — возможность обратиться к файлу к файловой системе и получить информацию об его атрибутах (скрытый, доступен только для чтения, архивный и т.п.)
  • InputB() — позволяет указывать количество байт, которые надо считать из файла. Альтернатива методу Open в случаях, когда необходимо считывать данные не по конкретным строкам, а именно побайтово.
  • Loc() — от Location, то есть местонахождение — возвращает число, которое определяет текущее место вставки или чтения в открытом файле.
  • Seek() — очень похожа на функцию Loc(), но Seek() возвращает информацию о позиции, с которой будет выполняться следующая операция чтения или вставки.
  • LOF() — length of file — позволяет определить длину открытого файла в байтах.

Статья помогла? Сделай твит, поделись ссылкой с друзьями!

© 2023 Excel для всех   Войти

file-handling-in-c · Темы GitHub · GitHub

Вот 52 общедоступных репозитория соответствует этой теме…

Кранти-Гурибилли / Система управления телефонной книгой

Звезда 6

хемант2132 / QuizWiz

Звезда 2

звездообразная петля / ОС-проекты-осень2020

Звезда 2

БаратКумарБК-15 / C-Мини-Проект

Звезда 2

Бикаш-натх / Администрация отеля

Звезда 2

Лукасвианав / c-файл-организация-sql

Звезда 2

гумзакт / C-программирование

Звезда 2

ак-че / C-программирование

Звезда 1

умангкумарр / Изображение-стеганография

Звезда 1

Шарды30 / Анилист

Звезда 1

странный / Система управления сотрудниками-C

Звезда 1

НикамРохан / Менеджер по расходам

Звезда 1

букетгенкайдин / C-программирование

Звезда 1

сумитгирвал / Инфо-Коллектор-CPP-Project

Звезда 1

ИмРохитСингх / Структуры данных

Звезда 1

савиндуг / анонимное хранилище

Звезда 1

ЯмРиддхи / C-программы

Звезда 1

Звездорождение / С

Звезда 1

нин-ран-джан / ОС-назначения

Звезда 1

3мротаха / Платежная система-в-C

Звезда 1

Улучшить эту страницу

Добавьте описание, изображение и ссылки на обработка файлов в c страницу темы, чтобы разработчикам было легче узнать о ней.

Курировать эту тему

Добавьте эту тему в свой репозиторий

Чтобы связать ваш репозиторий с обработка файлов в c тему, перейдите на целевую страницу репозитория и выберите «управление темами».

Узнать больше

Обработка файлов | Microsoft Узнайте

Редактировать

Твиттер LinkedIn Фейсбук Электронная почта

  • Статья

Используйте эти подпрограммы для создания, удаления и управления файлами, а также для установки и проверки разрешений на доступ к файлам.

Библиотеки времени выполнения C имеют ограничение в 512 на количество файлов, которые могут быть открыты в любой момент времени. Попытка открыть большее количество файловых дескрипторов или файловых потоков, чем максимальное, приводит к сбою программы. Используйте _setmaxstdio , чтобы изменить этот номер.

Подпрограммы обработки файлов (файловый дескриптор)

Эти подпрограммы работают с файлами, определяемыми файловым дескриптором.

Обычный Использовать
_chsize , _chsize_s Изменить размер файла
_filelength , _filelengthi64 Получить длину файла
_fstat , _fstat32 , _fstat64 , _fstati64 , _fstat32i64 , _fstat64i32 Получить информацию о состоянии файла по дескриптору
_get_osfhandle Возвращает дескриптор файла операционной системы, связанный с существующим дескриптором файла времени выполнения C
_исатти Проверка символьного устройства
_блокировка Заблокировать области файла
_open_osfhandle Свяжите дескриптор файла времени выполнения C с существующим дескриптором файла операционной системы
_setmode Установить режим перевода файлов

Процедуры обработки файлов (путь или имя файла)

Эти процедуры работают с файлами, указанными путем или именем файла.

Обычный Использовать
_access , _waccess , _access_s , _waccess_s Проверьте настройки прав доступа к файлам
_chmod , _wchmod Изменить настройки прав доступа к файлам
_fullpath , _wfullpath Разверните относительный путь до его абсолютного имени пути
_makepath , _wmakepath , _makepath_s , _wmakepath_s Объединить компоненты пути в один полный путь
_mktemp , _wmktemp , _mktemp_s , _wmktemp_s Создать уникальное имя файла
удалить , _wremove Удалить файл
переименовать , _wrename Переименовать файл
_splitpath , _wsplitpath , _splitpath_s , _wsplitpath_s Разобрать путь на компоненты
_stat , _stat64 , _stati64 , _wstat , _wstat64 , _wstat i64 Получить информацию о статусе файла для именованного файла
_umask , _umask_s Установить маску разрешений по умолчанию для новых файлов, созданных программой
_unlink , _wunlink Удалить файл

Подпрограммы обработки файлов (Открытие файла)

Эти подпрограммы открывают файлы.

Обычный Использовать
fopen , _wfopen , fopen_s , _wfopen_s Открывает файл и возвращает указатель на открытый файл.
_fsopen , _wfsopen Открыть поток с общим доступом к файлам и вернуть указатель на открытый файл.
_открыть , _wоткрыть Открывает файл и возвращает дескриптор открытого файла.
_sopen , _wsopen , _sopen_s , _wsopen_s Открыть файл с общим доступом к файлам и вернуть дескриптор файла открытому файлу.
_труба Создает канал для чтения и записи.
freopen , _wfreopen , freopen_s , _wfreopen_s Переназначить указатель файла.

Эти подпрограммы позволяют изменить представление файла между структурой FILE , дескриптором файла и дескриптором файла Win32.

Обычный Использовать
_fdopen , _wfdopen Связывает поток с файлом, который ранее был открыт для низкоуровневого ввода-вывода, и возвращает указатель на открытый поток.
_fileno Получает файловый дескриптор, связанный с потоком.
_get_osfhandle Возвращает дескриптор файла операционной системы, связанный с существующим дескриптором файла времени выполнения C
_open_osfhandle Связывает дескриптор файла времени выполнения C с существующим дескриптором файла операционной системы.

Следующие функции Win32 также открывают файлы и каналы:

  • CreateFile

  • CreatePipe

  • CreateNamedPipe

См.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *