انگولار - فریمورک آیونیک ایجاد فایل با استفاده از API فایل


من فقط میخواهم یک فایل ایجاد کنم. اما همانطور که مشخص میشود، این کار نسبتاً دشوار است. همچنین، مستندات رسمی آپاچی برای جاوااسکریپت است. با این حال، من میخواهم آن را در تایپاسکریپت پیادهسازی کنم. بگذارید بگوییم میخواهم یک فایل «access.log» ایجاد کنم. اما مطمئن نیستم بهترین مکان برای این فایل کجا است.

بسیار ممنون از کمک شما!

پاسخ شماره ۱

شما میتوانید از API بومی فایل آیونیک استفاده کرده و فایل ایجاد کنید با استفاده از تابع createFile در API فایل.

من توصیه میکنم فایل «access.log» را در cordova.file.dataDirectory ذخیره کنید زیرا این فقط یک فایل است و حدس میزنم برای استفاده داخلی برنامه باشد. از آنجا که شما استفاده خاصی از فایل را ذکر نکردهاید، پیشنهاد میکنم بخش Where To Store Files از مستندات cordova را بررسی کنید (API فایل Ionic فقط یک wrapper دور آن است، بنابراین مستندات همانند هستند).

نمونه کد:

import { Component } from '@angular/core';
import { File } from '@ionic-native/file';

@Component({
    selector: 'demo-comp',
    templateUrl: 'demo-comp.component.html',
})
export class DemoCompComponent {
    constructor(private file: File) { }

    createAccessLogFileAndWrite(text: string) {
        this.file.checkFile(this.file.dataDirectory, 'access.log')
        .then(doesExist => {
            console.log("doesExist : " + doesExist);
            return this.writeToAccessLogFile(text);
        }).catch(err => {
            return this.file.createFile(this.file.dataDirectory, 'access.log', false)
                .then(FileEntry => this.writeToAccessLogFile(text))
                .catch(err => console.log('Couldn't create file));
        });
    }

    writeToAccessLogFile(text: string) {
        this.file.writeExistingFile(this.file.dataDirectory, 'access.log', text)
    }

    someEventFunc() {
      // This is an example usage of the above functions
      // This function is your code where you want to write to access.log file
      this.createAccessLogFileAndWrite("Hello World - someEventFunc was called");
    }
}

این یک نمونه است؛ شما باید createAccessLogFileAndWrite را از تابع خودتان فراخوانی کرده و متنی که میخواهید به فایل اضافه شود را ارسال کنید.

لطفاً در بخش نظرات به من اطلاع دهید اگر با هر مشکلی مواجه شدید.