> ## Documentation Index
> Fetch the complete documentation index at: https://crewai-cursor-filewritetool-docs-aa85.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# كتابة الملفات

> تكتب محتوى نصيًا إلى ملف.

# `FileWriterTool`

## الوصف

تكتب `FileWriterTool` محتوى نصيًا إلى ملف. تُنشأ المجلدات المفقودة تلقائيًا.
ترميز النص الافتراضي هو UTF-8.

تقتصر عمليات الكتابة على مجلد sandbox. بشكل افتراضي يكون هذا المجلد هو مجلد
العمل الحالي. مرّر `base_dir` لتغييره.

## التثبيت

```shell theme={null}
pip install 'crewai[tools]'
```

## مثال

```python Code theme={null}
from crewai_tools import FileWriterTool

file_writer_tool = FileWriterTool()

result = file_writer_tool.run(
    filename='example.txt',
    content='This is a test content.',
    directory='test_directory',
)
print(result)
```

## المعاملات

يوفّرها الوكيل في وقت التشغيل:

* `filename`: اسم الملف المراد كتابته، نسبةً إلى `directory`. يمكن أن يتضمن
  مجلدات فرعية. تُنشأ تلك المجلدات الفرعية إذا لم تكن موجودة.
* `content`: المحتوى النصي المراد كتابته.
* `directory` (اختياري): المجلد الذي تتم الكتابة إليه. يُحل المسار النسبي
  داخل المجلد المسموح للأداة (`base_dir` عند تعيينه، وإلا مجلد العمل الحالي)
  ويُعيَّن افتراضيًا إلى جذر ذلك المجلد (`./`). يُنشأ إذا لم يكن موجودًا.
* `overwrite` (اختياري): ما إذا كان يجب استبدال ملف موجود. يقبل قيمة منطقية
  أو السلاسل `y`/`yes`/`t`/`true`/`on`/`1` و
  `n`/`no`/`f`/`false`/`off`/`0`. الافتراضي هو `false`. عندما يكون `false`
  والملف موجودًا مسبقًا، تُرجع الأداة خطأً ولا تعدّل الملف.

تُعيَّن هذه عند إنشاء الأداة:

* `base_dir` (اختياري): المجلد الذي يجب أن تبقى عمليات الكتابة داخله.
  الافتراضي هو مجلد العمل الحالي. يُحل المسار النسبي عند إنشاء الأداة، لذا
  لا ينقل تغيير لاحق لمجلد العمل حدود الـ sandbox.
* `encoding` (اختياري): ترميز النص المستخدم لكتابة الملف. الافتراضي هو
  `utf-8`.

## المسارات المسموح بها

عادةً ما يختار نموذج لغوي قيم `directory` و`filename` في وقت التشغيل. ترفض
الأداة المسارات التي تخرج من الـ sandbox:

* يجب أن يكون `directory` المحلول داخل `base_dir` (مجلد العمل الحالي
  افتراضيًا).
* يجب أن يكون مسار الملف المحلول داخل ذلك `directory`.
* تُحل مقاطع `..` والمسارات المطلقة والروابط الرمزية قبل كلا الفحصين.

للسماح بالكتابة تحت شجرة مختلفة، عيّن `base_dir`:

```python Code theme={null}
file_writer_tool = FileWriterTool(base_dir='/var/output')
```

<Note>
  سابقًا، كان بإمكان `directory` المطلق الكتابة في أي مكان يملك فيه العملية
  صلاحية. إذا اعتمدت على ذلك، عيّن `base_dir` إلى الشجرة التي تريد السماح بها.
  تعيين `CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true` يعيد السلوك القديم، لكنه يعطّل
  فحوصات المسار وURL على مستوى العملية لكل أدوات crewai-tools. فضّل `base_dir`.
</Note>
