Skip to content

Latest commit

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FlashAir client library for .NET Portable

WiFi対応のSDメモリカードである TOSHIBA FlashAir(TM) のAPIに接続するための.NET版クラスライブラリです。

FlashAirのAPIの詳細はTOSHIBAの開発者サイトで公開されています。ネットワークの通信(HTTP)は完全にカプセル化されています。また各APIの仕様を尊重しつつ、.NET的にデータを取扱い安いようにメソッドの名前、パラメーターなどを再構成しています。

.NET Portable ライブラリの形式でまとめてあるので、一般の.NETアプリケーションをはじめ、Windows Storeアプリ、Windows Phone、ASP.NETウェブアプリなど幅広い用途に使用できます。

ライブラリの設計ポリシーとして、メソッドやプロパティの名称は、オリジナルのAPIを尊重しつつ英語としてわかりやすいものに置き換える。時刻情報やフラグは DateTime、 Enum などに、バイナリ(ファイル)の転送には System.IO.Streamを使うなど、.NETネイティブなオブジェクト表現に置き換えしています。

Target

  • .NET Framework 4
  • Silverlight 5
  • Windows 8
  • Windows Phone 8.1
  • Windows Phone Silverlight 8

Requirement

  • .NET 4.0以降
  • 依存パッケージ Microsoft.Net.Http (Microsoft.Bcl/Microsoft.Bcl.Build)

簡単なサンプル

http://flashair/ へ接続するとした場合の、ファイルリストを取得、ファイルをStreamとして読み込み、ディレクトリを再帰的にリストするサンプルです。

usingFlashAirClient;
...FlashAir fa;int depth =0;voidRun(){fa=newFlashAir("http://flashair/");ListDirectory();}voidListDirectory(Stringdir="/"){Console.WriteLine(String.Format("Directory {0} contains {1} files.",dir,fa.Command.FileCount(dir)));foreach(varfileinfa.Command.FileList(dir)){Console.Write(String.Join("",Enumerable.Repeat(" ",depth)));Console.WriteLine(String.Format("{0} {1} {2} {3} {4}",file.Directory,file.Name,file.Time,file.Size,file.Attributes));if((file.Attributes&FileAttribute.Directory)==FileAttribute.Directory){depth++;ListDirectory(System.IO.Path.Combine(file.Directory,file.Name));depth--;}else{ExifInfoex;varst=fa.Thumbnail.Get(System.IO.Path.Combine(file.Directory,file.Name),outex);if(ex!=null){Console.WriteLine(String.Format("{0} x {1} {2}",ex.Width,ex.Height,ex.Orientation));using(varfileStream=fa.GetFile(file)){using(varreader=newSystem.IO.StreamReader(fileStream)){reader.ReadToEnd();// do nothing}}}if(st!=null){st.Dispose();}}}}

クラスリファレンス

namespace FlashAirClient;

class FlashAir

FlashAirアクセスの出発点になるクラスです。

メンバ名内容
FlashAir(String baseUrl)コンストラクタ
Commandcommand.cgi への呼び出し
Thumbnailthumbnail.cgi への呼び出し
Configconfig.cgi への呼び出し
Uploadupload.cgi への呼び出し
GetFile( FileInfo file )ファイルを System.IO.Stream としてダウンロード
GetFile( String path )ファイルを System.IO.Stream としてダウンロード

class Command

メンバ名内容
IEnumerable<FileInfo>FileList( String dir )dir(ディレクトリ)内のファイルの一覧
intFileCount( String dir)dir(ディレクトリ)内のファイル数取得
その他設定情報などを取得するメソッドまたはプロパティ

class Thumbnail

メンバ名内容
StreamGet( String path )path で指定した画像のサムネイル画像ファイルを Stream として取得
StreamGet( FileInfo file )FileListで取得したFileInfoを引数にして画像のサムネイル画像ファイルを Stream として取得
StringGetUrl( path )path で指定した画像のサムネイル画像のURLを取得
StringGetUrl( FileInfo file )FileListで取得したFileInfoを引数にして画像のサムネイル画像のURLを取得
###class Config

複数の設定を同時に送信できる仕様にのっとり、Configクラスのメンバ(プロパティ)にセットした内容を Submit( String mastercode ) で送信します。

class Upload

メンバ名内容
boolUploadFile()Streamとfilenameからファイルをアップロード
boolDeleteFile()ファイルの削除
boolSetUploadDirectory()アップロードディレクトリの指定
boolSetSystemTime()システムの時刻設定。
boolSetWriteProtect()

class FileInfo

Command.FileList() でファイルを列挙した際のファイル情報を格納します。

名前内容
StringDirectoryディレクトリ
StringNameファイル名またはディレクトリ名
longSizeサイズ
DateTimeTimeファイルの日付
FileAttributeAttributesファイルの属性情報のフラグ

改定履歴

  • v3.0.0.3 (2017.7.25) upload.cgi W-04で互換性の問題を修正
  • v3.0.0.2 (2017.1.18) upload.cgi で Non-ASCII ファイル名のハンドリング追加
  • v3.0.0.1 (2016.10.12) upload.cgi ファイルアップロード時のファイル名の扱いを修正
  • v3.0.0.0 リリース (2015.5.28)

ライセンス

MITライセンス (c) Yokinsoft http://www.yo-ki.com

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages