dotnet mauiで、CSVファイル付きのアプリのCSVファイルの共有化について

康二郎 井上 60 評価のポイント
2024-07-25T12:08:42.3366667+00:00

いつもお世話になっております。

VS2022Communityで、アプリ開発を行い、アンドロイドのタブレット(F-02K)をエミュレーターにして、デバッグを行い、有線を外しても、タブレットで、アプリは正常に動きます。このアプリはCSVファイルを利用していて、Resource.Rawフォルダに埋め込んでいます。最終目的は、PCで、このCSVファイルを変更した場合、Google driveなどのファイル共有ソフトを利用して、このタブレット内のCSVファイルも更新したいと、思っています。Chat-GPTに聞いたりすると、ざっと以下のようなクラスを作成してCSVファイルをタブレット内の所定の場所にコピー?する必要があるとのこと。Xamarin.Essentialsもインストールしました。しかし、Xamarin.Android ではリソースディレクトリの名前は全て小文字である必要がありといってきて、Rawをrawに変更するように、言ってきています。

この方向性は正しいのでしょうか? 経験され、成功されている方は、どうされていますか?

以下の、Android.App.Application.Context.Resources.OpenRawResource(global::OthelloDatComent.Resource.Raw.reDatabase)) のRawがエラーであり、

using System.IO;

using System.Threading.Tasks;

using Xamarin.Essentials;

#if ANDROID

using Android.Content.Res;

using Android.App;

#endif

public class FileHelper

{

public static async Task CopyRawResourceToInternalStorageAsync(string fileName)

{

    string filePath = Path.Combine(Xamarin.Essentials.FileSystem.AppDataDirectory, fileName);

#if ANDROID

    using (var rawStream = Android.App.Application.Context.Resources.OpenRawResource(global::OthelloDatComent.Resource.Raw.reDatabase))

    using (var fileStream = new FileStream(filePath, FileMode.OpenOrCreate))

    {

        await rawStream.CopyToAsync(fileStream);

    }

#endif

}

public static string GetInternalFilePath(string fileName)

{

    return Path.Combine(Xamarin.Essentials.FileSystem.AppDataDirectory, fileName);

}

}

C#
C#
C 言語ファミリをルーツとし、コンポーネント指向プログラミングのサポートを含む、オブジェクト指向およびタイプセーフのプログラミング言語。
37 件の質問
{count} 件の投票

承認済みの回答
  1. Raina Zhao - MSFT 2,860 評価のポイント Microsoft ベンダー
    2024-08-08T07:23:39.26+00:00

    康二郎 井上さん、ご返信いただきありがとうございます。

    Google.net SDKの概要によると、Googleの公式Google Drive SDKは現在、MAUIと互換性がありません。

    Incompatible platforms:

    • Xamarin/MAUI

    GitHubのGoogleリポジトリで、Google DriveがMAUIをサポートするSDKをリリース予定の時期に関する投稿をお勧めします。

    どうぞよろしくお願いいたします。


    役に立った回答には「回答を受け入れる」と「いいね!」を押してください。さらに質問がある場合は、「コメント」を追加してください。注意:Q&Aからメール通知を受け取りたい場合には、ドキュメントの手順に基づき、メール通知を有効にしてください。


1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. SurferOnWww 3,616 評価のポイント
    2024-08-16T04:50:04.55+00:00

    質問者さんの別のスレッド「SQLiteで、困っています。」で書きましたが、アンドロイドアプリがデータソース (CVS ファイルとかデータベース) を共有できるのであれば以下のような構成を考えてはいかがですか?

    アンドロイドアプリ <= インターネット => Web API <=> データソース

    PC でデータソースを更新する場合は以下のようにすれば良さそうです。

    PC のアプリ <= インターネット => Web API <=> データソース

    Raina Zhao さんの回答欄下の質問者さんのコメントの案、

    google driveでファイル共有し、そこからのCSVファイルの読み込みを目指しています。

    ・・・は、Raina Zhao さんの回答によると、

    Google.net SDKの概要によると、Googleの公式Google Drive SDKは現在、MAUIと互換性がありません。

    ・・・とのことで、それが確かなら (そこのところは自分は分かりません)、

    この方向性は正しいのでしょうか?

    ・・・の方向性から見直さなければならないと思いますがいかがですか?

    0 件のコメント コメントはありません

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。