10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flutterでfile_pickerの使用方法と特徴

Last updated at Posted at 2024-07-24

今回は、Flutterアプリでファイルを選択する機能を実装する際に便利なfile_pickerパッケージの使い方を紹介します。

file_pickerとは

file_pickerは、クロスプラットフォームでファイル選択ダイアログを表示し、ユーザーがデバイスからファイルを選択できるようにするためのFlutterパッケージです。このパッケージを使用すると、ドキュメント、画像、ビデオなどさまざまなファイルタイプを簡単に選択できます。

使用方法

以下のコードで、簡単にファイル選択機能を実装できます。

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FilePickerDemo(),
    );
  }
}

class FilePickerDemo extends StatefulWidget {
  @override
  _FilePickerDemoState createState() => _FilePickerDemoState();
}

class _FilePickerDemoState extends State<FilePickerDemo> {
  String? _fileName;

  Future<void> _pickFile() async {
    FilePickerResult? result = await FilePicker.platform.pickFiles();
    if (result != null) {
      setState(() {
        _fileName = result.files.first.name;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('File Picker Demo')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: _pickFile,
              child: Text('ファイルを選択'),
            ),
            SizedBox(height: 20),
            if (_fileName != null) Text('選択されたファイル: $_fileName'),
          ],
        ),
      ),
    );
  }
}

主なプロパティ

  • allowedExtensions:許可するファイルの拡張子を指定(例:['jpg', 'pdf']
  • allowMultiple:複数ファイルの選択を許可するかどうか(デフォルトはfalse
  • type:選択するファイルのタイプ(例:FileType.imageFileType.videoFileType.any

使用例

Future<void> _pickFile() async {
  FilePickerResult? result = await FilePicker.platform.pickFiles(
    type: FileType.custom,
    allowedExtensions: ['jpg', 'pdf'],
    allowMultiple: true,
  );
  if (result != null) {
    setState(() {
      _fileName = result.files.map((file) => file.name).join(', ');
    });
  }
}

file_pickerの特徴

  • クロスプラットフォーム対応:iOS、Android、Windows、macOS、Linuxで動作
  • 多様なファイルタイプのサポート:ドキュメント、画像、ビデオ、音声ファイルなど
  • 単一/複数ファイルの選択:単一ファイルだけでなく、複数ファイルの選択も可能
  • セキュリティ:プライバシーとセキュリティを考慮した設計

最後に

Flutterの学習を始めたばかりの初心者ですが、file_pickerを使うことでアプリの機能を拡張することができました。この記事が少しでも役立てば幸いです。何か違う点や質問があれば、コメントで教えてください。よろしくお願いします!!

10
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?