Файловая система как средство организации данных на компьютере
Файловая система – это набор программных средств которые обеспечивают хранение файлов и их расположение в папках на диске. Так как файлы хранят какие либо данные, мы можем утверждать что это средство для организации данных на компьютере. Основыне принципи:
- Каждый файл находятся в определенной папке, папку называют также каталог
- Каждая папка кроме корневой папки находится в другой папке
- На диске существует одна единственная корневая папка. Путь к ней в Windows обозначается как
имя_диска:\, напримерD:\
Пример:
Тут показана одна корневая папка D:\, в ней есть папка a, в папке a есть папки c и f, в папке c есть файл 1.txt
- Чтобы обращаться к папкам и файлам программно нужно указать ПУТЬ к папке или файлу
- ПУТЬ состоит из папок разделенных при помощи разделителя. В Windows разделитель - это обратный слеш
\ - Путь может быть абсолютным или относительным
Абсолютный путь
Абсолютный путь - это путь в начале которого есть корневая папка.
Пример - абсолютный путь к папке a:
D:\a
абсолютный путь к файлу 1.txt:
D:\a\c\1.txt
Вопрос 1: Как выглядит абсолютный путь к папке f?Относительный путь
- Это путь относительно какой-то заданной папки.
- В любой программе есть понятие текущая папка (current dir). Именно относительно пути этой папки задается относительный путь.
- Относительный путь начинается с точки
.
Пример:
Допустим папка a - текущая. Тогда относительный путь к папке f будет выглядеть как:
.\f
Когда вы скажите операционной системе чтобы она отдала файл - она увидит . и поймет что вместо точки нужно подстваить путь текущей папки (D:\a), в конечном счете она поймет что путь к папке f: D:\a + \f = D:\a\f
Пример: относительный путь к файлу 1.txt (a - текущая папка):
.\c\1.txt
! ACHTUNG: чтобы упросить себе жизнь решили что '.\' можно не указывать - то есть относительные пути.\c\1.txtиc\1.txtпо сути указывают на тоже самое!
Пример:
Теперь допустим что текущая папка f. А нам нужно обратиться к файлу 1.txt. Но в примерах выше мы двигались от точки только в низ, а теперь нам нужно сделать шаг вверх - вернуться в папку а и оттуда пойти в c\1.txt.
Чтобы это сделать нужно использовать двоеточие ... Оно указыват ОС что в пути нужно поднятся вверх (в родительскую папку).
Итак относительный путь к файлу когда f - текущая:
..\c\1.txt
Точек может быть и несколько да и они не обязательно могут находится в начале пути, пример
D:\a\c\..\f\..\..\a\c\1.txt

пример лишь для демонстрации, использовать такие пути не нужно, но он лучше всего показывает как опреационная система разбирает путь
Пример: Относительный путь к папке a когда f текущая:
..
Вопрос 2 как будет выглядить относительный путь к файлу1.txtкогда папкаc- текущая.
Вопрос 3: как будет выглядить относительный путь к файлу1.txtкогда папкаk- текущая:
Утилиты командной строки
Файлы и папки можно создавать из коммандной строки (Win+R, cmd, enter)
- cd <путь> - сменить текущую папку
- mkdir <путь> - создать папку
- echo <строка> > <путь> - написать строку в текстовый файл
- type <путь> - показать содержимое текстового файла
Внимание - путь в любой комманде можно указывать как абсолютный так и относительный!!!
HELP Текущая папка показана в cmd перед скобкой Как создать структуру из примера
D: в винде нужно сначала выбирать диск... просто прописывая его имя с двоеточием иначе останешся на диске `C:` cd D:\ абсолютный путь mkdir D:\a можно было бы сделать просто mkdir ./a или даже mkdir a - разници нет cd a заюзали относительный путь mkdir .\c заюзали относительный путь с точкой echo bla > .\1.txt написали bla в файл `1.txt` mkdir ..\f создали папку f ипользуя относительный путь cd ..\f перешли в нее
Вопрос 4 созадать структуру с папками g и k из картинки выше и написать какие комманды использовались
Вопрос 5 зайти в папку k и показать показать содержимое файла 1.txt используя относительный путь. Написать комманды
Бонус - Linux (Unix)
Практически на все сервера установлена ОС Linux а не Windows а в Linux работа с путями немного отличается хоть и очень похожа:
- в linux есть
.и..и они работают точно так же как и в Windows - В linux разделителем выступает не обратный
\а прямой слеш/и это главное отличее! - Еще одно отличае это то, что в linux нет множества дисков (
C:\,D:\). В нем все намного проще - Вместо кучи корневых папок есть только одна - корень - просто
/. Пример абсолютного пути в линухе -/home/usver/1.txt - в линухе есть комманды
cd,mkdir,echoи они будут работать как показано выше - вместо
type <путь>в linux используется коммандаcat <путь>