トップページ > 記事閲覧
【Android版】外部ファイルについて
名前:Ketty 日時: 2019/10/21 21:25

いつも楽しくDXライブラリを使わせていただいております(^▽^) Android版で、 GetInternalDataPathが返すディレクトリに、適当なテキストファイルを保存するプログラムを組んでみたのですが、 そのテキストファイルを、Visual Studioやエクスプローラーから確認する方法ありますでしょうか?? また、 GetInternalDataPathと GetExternalDataPathの用途の違いはなんでしょうか? いずれもassetsフォルダ以外でアプリが自由に使えるフォルダパスを返すのだと思いますが使い分けが分かりません。 【環境】 Windows10 Visual Studio 2017 Community DXライブラリ3.21b Android版 よろしくお願いします。
メンテ

Page: 1 |

Re: 【Android版】外部ファイルについて ( No.1 )
名前:管理人 日時:2019/10/22 23:00

> Android版で、 > GetInternalDataPathが返すディレクトリに、適当なテキストファイルを保存するプログラムを組んでみたのですが、 > そのテキストファイルを、Visual Studioやエクスプローラーから確認する方法ありますでしょうか?? 残念ながら Visual Studioやエクスプローラーから確認する方法はありません ( 同じアプリのプログラムから FileRead_open、 FileRead_read で読み込むことはできますが… ) > また、 > GetInternalDataPathと > GetExternalDataPathの用途の違いはなんでしょうか? GetInternalDataPath は前述の通りエクスプローラなどのファイル管理ソフトではアクセスできないフォルダのパスを取得する関数で、 GetExternalDataPath はエクスプローラなどのファイル管理ソフトでもアクセスできるフォルダのパスを取得する関数です セーブデータなどの閲覧されたり改造されたりしたくないファイルを保存する場合は GetInternalDataPath で取得できるフォルダパスに保存して、 デバッグ用のログファイルやアプリのユーザーも使うデータの保存には GetExternalDataPath で取得できるフォルダパスにファイルを保存する、 といった使い分けをします ただ、恐らく root化された端末では GetInternalDataPath で取得できるフォルダにもアクセスできてしまうと思いますので、 『GetInternalDataPath で取得できるフォルダに保存したファイルには絶対アクセスされない』という訳ではないです
メンテ
Re: 【Android版】外部ファイルについて(解決) ( No.2 )
名前:Ketty 日時:2019/10/22 20:52

ご回答くださりありがとうございます。 詳しくご説明いただいたので理解できました(^^) 解決とさせていただきます。
メンテ
Re: 【Android版】外部ファイルについて ( No.3 )
名前:そめ 日時:2021/04/24 16:25

類似の質問のため便乗失礼します 1. GetExternalDataPathから取得したパスを元に fopen による書き込みと読み込み成功しました ですが >GetExternalDataPath はエクスプローラなどのファイル管理ソフトでもアクセスできるフォルダのパスを取得する関数です とありますが実機をUSB接続しエクスプローラで見ても見当たりません どこにあるのでしょう? (私にはそもそもAndroidのデータ配置等に関するリテラシーが無くて困ってます) 2. 1が解決した場合、次にエミュレータの場合の上記のファイル閲覧はどういったやり方があるでしょう? 3. assetsにあるファイルのfopenによる読み込みは可能でしょうか?パスの取得方法などあればご教授お願いします よろしくお願いいたします
メンテ
Re: 【Android版】外部ファイルについて ( No.4 )
名前:管理人 日時:2021/04/26 00:25

> >GetExternalDataPath はエクスプローラなどのファイル管理ソフトでもアクセスできるフォルダのパスを取得する関数です > とありますが実機をUSB接続しエクスプローラで見ても見当たりません > どこにあるのでしょう? 例えばこのようなパスにあります( DxLibTest_Android_VS2019 はプロジェクト名です ) PC\Xperia XZ Premium\内部共有ストレージ\Android\data\com.DxLibTest_Android_VS2019\files > 2. > 1が解決した場合、次にエミュレータの場合の上記のファイル閲覧はどういったやり方があるでしょう? 私は試したことがありませんが、こちらのような方法があるようです Androidアプリ開発 with Jetpack and kotlin AndroidエミュレーターとPC間でファイル転送。ファイル保存や表示する方法。【Android Studio デバイスファイルエクスプローラの使い方】 https://yoruhi.net/archives/android-studio-device-file-explorer/ > 3. > assetsにあるファイルのfopenによる読み込みは可能でしょうか?パスの取得方法などあればご教授お願いします assets内のファイルは専用のAPIでのみアクセスできるので、fopen による読み込みはできません DXライブラリの FileRead_open, FileRead_read, FileRead_close などの fopen, fread, fclose に 似た関数でアクセスすることができます
メンテ
Re: 【Android版】外部ファイルについて ( No.5 )
名前:そめ 日時:2021/04/26 22:17

回答ありがとうございます 起動時に"a+"でfopenして適当な文字を追記するように組んで見たところ 起動するたびに実際にファイルサイズが大きくなっているところまで確認できました (実機のCtrlF5実行、およびエミュレータ) (つまり揮発的な現象ではないことまで確認できました) ですがやはりエクスプローラからは見当たりません Externalの2箇所(非リムーバルとリムーバル)、およびInternalの3箇所に同じ検証を施しています エクスプローラ上では コンピューター\機種名\内部ストレージ\Android\data コンピューター\機種名\SDカード\Android\data どちらもcom.android.chromeなどのフォルダが並んでいますが com.DxLibTest_Android_VS2019のフォルダがありません なおfopenしているパスはこちらとなります /storage/emulated/0/Android/data/com.DxLibAndroidSample_VS2019/files/hello_external_0_0.txt /storage/10F9-1218/Android/data/com.DxLibAndroidSample_VS2019/files/hello_external_1_1.txt /data/user/0/com.DxLibAndroidSample_VS2019/files/hello_internal.txt よろしくお願いいたします
メンテ
Re: 【Android版】外部ファイルについて ( No.6 )
名前:管理人 日時:2021/04/27 01:27

> ですがやはりエクスプローラからは見当たりません > Externalの2箇所(非リムーバルとリムーバル)、およびInternalの3箇所に同じ検証を施しています Android のバージョンや使用されている機種によってはUSB接続したPC上からは参照できないように なっているのかもしれません Androidアプリのエクスプローラ的ソフト( 『ファイルマネージャー』で検索すると沢山出てきます ) では見れるかもしれませんので、よろしければアプリをインストールして確認してみてください m(_ _)m
メンテ
Re: 【Android版】外部ファイルについて ( No.7 )
名前:そめ 日時:2021/04/27 02:24

見れました! なるほど〜 ありがとうございました
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存