> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> يوفر الوصول إلى نظام الملفات لعرض الملفات وإرجاع بياناتها الوصفية ومحتوياتها.

# filesystem

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            غير مدعوم في ClickHouse Cloud
        </div>;
};

<div id="filesystem-table-function">
  # دالة الجدول filesystem
</div>

تستعرض هذه الدالة دليل بشكل متكرر وتُرجع table تتضمن البيانات الوصفية للملفات (المسارات، والأحجام، والأنواع، وpermissions، وأوقات التعديل)، وبشكل اختياري، محتويات الملفات.

في وضع `clickhouse-server`، يجب أن يكون path ضمن دليل ‏[user\_files\_path](/ar/reference/settings/server-settings/settings#user_files_path). تتم متابعة الروابط الرمزية داخل `user_files_path` التي تشير إلى مسارات خارجه، ولكن لا تُرجع إلا entries التي يبدأ path الخاص بها (عبر الرابط الرمزي) بـ `user_files_path`.

في وضع `clickhouse-local`، لا توجد قيود على path.

<div id="syntax">
  ## الصيغة
</div>

```sql theme={null}
filesystem([path])
```

<div id="arguments">
  ## المعاملات
</div>

| المعامل | الوصف                                                                                                                                                                                                                                   |
| ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path`  | الدليل المراد عرض محتوياته. يمكن أن يكون مسارًا مطلقًا (ويجب أن يكون داخل `user_files_path` في وضع الخادم) أو مسارًا نسبيًا بالنسبة إلى `user_files_path`. وإذا كان فارغًا أو غير مذكور، فستكون القيمة الافتراضية هي `user_files_path`. |

<div id="returned_columns">
  ## الأعمدة المُعادة
</div>

| العمود              | النوع                      | الوصف                                                                                                                                                                                                                                                                      |
| ------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path`              | `String`                   | الدليل الذي يحتوي على الإدخال (ولا يتضمن اسم الملف/الدليل نفسه).                                                                                                                                                                                                           |
| `name`              | `String`                   | اسم الملف أو الدليل (آخر مكوّن في المسار).                                                                                                                                                                                                                                 |
| `file`              | `String` (ALIAS of `name`) | اسم مستعار للعمود `name`.                                                                                                                                                                                                                                                  |
| `type`              | `Enum8`                    | نوع الملف: `'none'`, `'not_found'`, `'regular'`, `'directory'`, `'symlink'`, `'block'`, `'character'`, `'fifo'`, `'socket'`, `'unknown'`.                                                                                                                                  |
| `size`              | `Nullable(UInt64)`         | حجم الملف بالبايت (للملفات العادية). وتكون القيمة `NULL` للملفات غير العادية (الأدلة والروابط الرمزية وما إلى ذلك) وعند حدوث خطأ.                                                                                                                                          |
| `depth`             | `UInt16`                   | عمق التكرار. تكون القيمة `0` للدليل المطلوب نفسه ولأبنائه المباشرين، و`1` للإدخالات الأعمق بمستوى واحد، وهكذا.                                                                                                                                                             |
| `modification_time` | `Nullable(DateTime64(6))`  | وقت آخر تعديل بدقة الميكروثانية. وتكون القيمة `NULL` عند حدوث خطأ.                                                                                                                                                                                                         |
| `is_symlink`        | `Bool`                     | ما إذا كان الإدخال رابطًا رمزيًا.                                                                                                                                                                                                                                          |
| `content`           | `Nullable(String)`         | محتويات الملف (للملفات العادية). وتكون القيمة `NULL` للملفات غير العادية (الأدلة والروابط الرمزية وما إلى ذلك). تؤدي أخطاء القراءة إلى إثارة استثناء. وتؤدي قراءة هذا العمود إلى تنفيذ عمليات إدخال/إخراج فعلية للملفات، لذا يُفضَّل عدم تضمينه إذا لم تكن هناك حاجة إليه. |
| `owner_read`        | `Bool`                     | لدى المالك إذن قراءة.                                                                                                                                                                                                                                                      |
| `owner_write`       | `Bool`                     | لدى المالك إذن كتابة.                                                                                                                                                                                                                                                      |
| `owner_exec`        | `Bool`                     | لدى المالك إذن تنفيذ.                                                                                                                                                                                                                                                      |
| `group_read`        | `Bool`                     | لدى المجموعة إذن قراءة.                                                                                                                                                                                                                                                    |
| `group_write`       | `Bool`                     | لدى المجموعة إذن كتابة.                                                                                                                                                                                                                                                    |
| `group_exec`        | `Bool`                     | لدى المجموعة إذن تنفيذ.                                                                                                                                                                                                                                                    |
| `others_read`       | `Bool`                     | لدى الآخرين إذن قراءة.                                                                                                                                                                                                                                                     |
| `others_write`      | `Bool`                     | لدى الآخرين إذن كتابة.                                                                                                                                                                                                                                                     |
| `others_exec`       | `Bool`                     | لدى الآخرين إذن تنفيذ.                                                                                                                                                                                                                                                     |
| `set_gid`           | `Bool`                     | بت Set-GID.                                                                                                                                                                                                                                                                |
| `set_uid`           | `Bool`                     | بت Set-UID.                                                                                                                                                                                                                                                                |
| `sticky_bit`        | `Bool`                     | البت اللاصق.                                                                                                                                                                                                                                                               |

لا تُحتسب إلا الأعمدة المستخدمة فعليًا في الاستعلام، لذا فإن اختيار مجموعة فرعية من الأعمدة (وخاصةً مع استبعاد `content`) يكون فعّالًا.

<div id="examples">
  ## أمثلة
</div>

<div id="list-files">
  ### عرض الملفات في user\_files
</div>

```sql theme={null}
SELECT name, type, size, depth
FROM filesystem()
ORDER BY name;
```

<div id="find-large-files">
  ### العثور على الملفات الكبيرة
</div>

```sql theme={null}
SELECT path, name, size
FROM filesystem()
WHERE type = 'regular' AND size > 1000000
ORDER BY size DESC;
```

<div id="read-contents">
  ### قراءة محتويات الملف
</div>

```sql theme={null}
SELECT name, content
FROM filesystem('my_directory')
WHERE name LIKE '%.csv';
```

<div id="list-immediate">
  ### سرد العناصر الفرعية المباشرة فقط
</div>

```sql theme={null}
SELECT name, type
FROM filesystem('my_directory')
WHERE depth = 0;
```
