Search packages, repositories and app categories

flutter_file_info cover
Package detailsv0.3.0

flutter_file_info

A Flutter plugin for retrieving detailed file metadata, including native icons assigned by file type.

AndroidiOSmacOSWindows
30-day downloads
233
Likes
11
Pub points
130

Install package

flutter pub add flutter_file_info

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

flutter_file_info is a Flutter plugin that enables retrieval of detailed file metadata, such as size, creation date, and file type. It supports native icons assigned by the operating system based on file extensions, enhancing visual consistency across platforms. Designed for Android, iOS, macOS, and Windows, it integrates seamlessly into file management applications. The plugin simplifies access to system-level file information without requiring platform-specific code. It's ideal for apps needing rich file previews or detailed file properties.

Use cases

  • File browser development
  • Media file metadata extraction
  • File preview thumbnails
  • Cross-platform file utilities
  • Desktop file management

Key features

  • Native file icons by type
  • Cross-platform support
  • File size and timestamp retrieval
  • Simple API integration
  • Extensible metadata access

Suitable for

  • Developers building file explorers
  • Apps requiring file metadata
  • Desktop and mobile file utilities
  • UIs with file previews
  • Plugins needing file info

Considerations

  • Requires platform-specific permissions
  • Limited to basic file metadata
  • Icon rendering may vary by OS
  • Not suitable for large file scanning
  • Depends on underlying OS file system APIs

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

header

Flutter Windows Tests pub package pub likes License: MIT

flutter_file_info

A Flutter plugin for retrieving detailed file metadata, including system-native file icons. You can retrieve the native icon assigned to a file based on its type, ensuring a consistent visual representation across platforms. Perfect for applications that require access to file details and icons.

Features

  • Access to native file icons.
  • Retrieval of detailed file metadata.

Compatibility Chart

API Android iOS Linux macOS Windows Web
getFileIconInfo() :heavy_check_mark: :heavy_check_mark: :x: :heavy_check_mark: :heavy_check_mark: :x:
getFileInfo() :heavy_check_mark: :heavy_check_mark: :x: :heavy_check_mark: :heavy_check_mark: :x:

iOS Deployment Target

This plugin requires a minimum iOS deployment target of 13.0. Ensure that your project is configured correctly by following these steps:

  1. Update the Podfile

    In the ios/Podfile file, set the deployment target:

    platform :ios, '13.0'
    

    After making this change, run:

    cd ios && pod install
    
  2. Update Xcode Project Settings

    1. Open your project in Xcode (ios/Runner.xcworkspace).
    2. Navigate to Runner → General.
    3. In the Deployment Info section, set iOS Deployment Target to 13.0.

These steps ensure that your project is compatible with the required iOS version.

Getting Started

Usage

Quick simple usage example:

Get icon info
IconInfo? iconInfo = await FileInfo.instance.getFileIconInfo('path/to/example/file.txt');

Widget _buildFileIcon() {
    if (iconInfo == null) return const SizedBox.shrink();
    return Image.memory(
      iconInfo!.pixelData,
      width: iconInfo!.width.toDouble(),
      height: iconInfo!.height.toDouble(),
    );
  }
Get file info
FileMetadata? fileMetadata = await FileInfo.instance.getFileInfo('path/to/example/file.txt');

if (fileMetadata != null) {
    print(fileMetadata.fileName);                    // Output: file.txt
    print(fileMetadata.fileExtension);               // Output: txt
    print(fileMetadata.fileType);                    // Output: TextDocument
    print(fileMetadata.creationTime?.toString());    // Output: 2024-08-01 17:16:26.500018
    // ...
}

Screenshots

Windows

windows_example

MacOS

macos_example

iOS

ios_example

Android

android_example

Contributing

If you would like to contribute to the development of this plugin, please fork the repository and submit a pull request. For detailed contribution guidelines, please refer to the CONTRIBUTING.md file.

License

This plugin is licensed under the MIT License.

Categories

Dependencies

Dependency list 5 items

Source repository

Projects using this package

No data available yet.