スポンサーリンク

【Flutter】ファイルを削除する方法。〜ファイル作成から削除まで〜

Flutter
スポンサーリンク

今回の記事はFlutterを用いてファイルを削除する方法に関しての記事を記載します。流れとしてはFlutterの初期プロジェクトのボタンを一度クリックするとファイル作成、もう一度押すとファイル削除をするサンプルを作成し、解説を行っていきます。

スポンサーリンク

Flutterでテキストファイル作成

まずはFlutterでテキストファイルを作成します。pathproviderを使用するのでpubspec.yamlでインストールしてください。

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter


  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.0

  path_provider: ^0.5.0+1

コード抜粋は下記です。(全体のコードは次の項目に記載しています。)

//ファイル作成
final logDirectory = await getApplicationDocumentsDirectory();
filepath = '${logDirectory.path}/test.txt';
File textfilePath = File(filepath);
await textfilePath.writeAsString('test');

基本的に詳しくは下記記事で解説しているので詳しくは下記をご参照ください。

Flutterで内部ストレージにテキストファイルを作成する手順

Flutterでファイル削除

ファイル削除は下記で可能です。

//ファイル削除
final dir = Directory(filepath);
dir.deleteSync(recursive: true);

これらを踏まえて初期アプリの「+ボタン」のクリック回数によって処理を変化したサンプルアプリを作成してみます。

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(

        primarySwatch: Colors.blue,

        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  bool iconchange = false;
  String filepath;

  Future<void> _incrementCounter() async {
    if (_counter/2 == 0) {
      iconchange = true;
      //ファイル作成
      final logDirectory = await getApplicationDocumentsDirectory();
      filepath = '${logDirectory.path}/test.txt';
      File textfilePath = File(filepath);
      await textfilePath.writeAsString('test');

    } else if (_counter/2 == 1) {
      iconchange = false;
      //ファイル削除
      final dir = Directory(filepath);
      dir.deleteSync(recursive: true);

    }
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(

        title: Text(widget.title),
          actions: [
            if (iconchange==true)
              IconButton(
                icon: Icon(Icons.flag),
                color:Colors.white,
                onPressed: () {},
              ),
            if (iconchange==false)
              IconButton(
                icon: Icon(Icons.flag_outlined),
                color:Colors.red,
                onPressed: () {},
              ),
          ]
      ),
      body: Center(

        child: Column(

          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

Flutterで内部ストレージファイルの確認

内部ストレージの確認方法は2通りあります。下記どちらかでかくにんしてみましょう。

Flutterスクリプトで内部ストレージのファイル一覧取得

下記記事で紹介しております。

Flutterで内部ストレージ確認方法

デバイスエクスプローラーで内部ストレージ確認

AndroidStudioのデバイスファイルエクスプローラーで内部ストレージを確認する方法は下記です。

AndroidStudioで内部ストレージを確認する方法

今回の記事は以上です。他にもFlutterの記事を多数記載しているので気になる方はご確認してみてください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

Flutter
スポンサーリンク
スポンサーリンク
ともぶろぐ

コメント

タイトルとURLをコピーしました