• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Android ファイルの書き込み)

Android ファイルの書き込みができないエラーへの対処方法

このQ&Aのポイント
  • SDカード内のファイルに書き込みを行いたいが、FileNotFoundExceptionエラーが発生し書き込みができない
  • Android 6.0以降でストレージの読み書き権限の確認と許可を得る作業を実装したが、書き込みができない
  • 権限が許可されているにもかかわらず、ファイルを書き込むことができない

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>「SDカードのコンテンツの変更または削除」 >「SDカードコンテンツの読み取り」 >が許可されていました。 (Android6.0以降のpermissionは良く知りませんが)その状態からするとpermissionは正常のように思われます。 >ファイルを書き込むためのルートパスも間違っていない もしかしてルート権限でプロテクトされている所にファイルを出力しようとしてませんか? import android.os.Environment; ~ String SDCardRoot = Environment.getExternalStorageDirectory( ).getPath( ); ↑本当のRootではありません、アプリから読み書きできるRoot(Rootと言うのは不適切かもしれませんが…)、SDCardRootより下位でないとアプリから読み書きできません。 通常は内部ストレージが対象になりますが、確かAndroid5のみ外部ストレージが対象だったか?、詳しくはググって下さい。 当方の場合はSDCardRoot=「/mnt/sdcard」などとなっています。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

>回答No.1 amanojaku1 レベル12 >import android.os.Environment; >~ >String SDCardRoot = Environment.getExternalStorageDirectory( ).getPath( ); 「SDCardRoot」は あくまで一例です、自分の分かりやすい変数名を付けて下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • GALAXY S II SC-02Cのファイル

    SDカードの写真を本体にコピーしようとしたら、マイファイルに ・Android ・Attachments ・DCIM ・external_sd ・LOST.DIR ・private ・usbStorage のフォルダが既にありました。 external_sdにSDカードのファイルが入っているのは分かるのですが、それ以外のファイルって消してしまっても大丈夫でしょうか? ほとんどファイルが何も入ってなかったり、そのファイルを開くアプリケーションがないと言われます。 出来るだけ整理して見やすくしたいので、消してもいいファイルを教えていただけると助かります。よろしくお願いします。

  • なぜandroid4.4でSDに書き込み可能?

    Android4.4でmicroSDカードに書き込みが可能なアプリがあるのはなぜですか。 Android4.4では外部ストレージへの書き込みが制限されているらしく、多くのファイル管理アプリでmicroカード内にあるデータの削除ができないことを確認しました。しかし、可能なアプリがいくつかありました。CheetahMobileによる「ファイル マネージャー (ファイルエクスプ ローラー)」やMetagoによる「アストロファイルマネージャー」等でSDカード内にあるデータの削除に成功しました。 外部ストレージへの書き込みが制限されているにも関らずSDカードへの書き込みができているという点が不思議です。多くのアプリが制限を受けている中で制限を感じさせないアプリがある理由やそれを実現する技術について教えてください。

  • AndroidにおけるSQLiteの使い方について

    Android Studioで、Androidのアプリを開発しています。 SQLiteを使おうとすると、 クエリを送るタイミングでアプリケーションが停止してしまいます。 何が悪いんでしょうか。 以下の様なソースコードで停止しました。 #MyDbOpenHelper.java package com.example.test10; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by taiki on 13/06/16. */ public class MyDbOpenHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 2; private static final String DATABASE_NAME = "board"; private static final String THREAD_TABLE_NAME = "thread"; private static final String THREAD_TABLE_COLUMN1 = "column1"; private static final String THREAD_TABLE_CREATE = "CREATE TABLE " + THREAD_TABLE_NAME + " (" + THREAD_TABLE_COLUMN1 + " text;"; MyDbOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(THREAD_TABLE_CREATE); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) { } } #MainActivity.java package com.example.test10; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyDbOpenHelper dbHelper; dbHelper = new MyDbOpenHelper(MainActivity.this); SQLiteDatabase db = dbHelper.getReadableDatabase(); db.execSQL("CREATE TABLE thread (threadNumber integer primary key autoincrement,mainText TEXT, createDate date);"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }

  • Samba で新規作成したファイルやディレクトリの権限

    宜しくお願いします。 Samba から新規作成したファイルやフォルダのパーミッションに、グループの書込み権限もつくようにするには、どのように設定するのでしょうか。 初歩的な質問かもしれなくて恐縮ですが、どなたか教えていただければ、嬉しく思います。宜しくお願いします。

  • AndroidでのPDFの保存先移動について

    AndroidのスマホのAQUOSsenseSHV40に機種変更して物凄く使いにくくて困っています(泣) GoogleChromeでPDFを見ようとしたら、直接表示できなくて、ダウンロードするならアクセス権限許可をと、アクセス権限許可を求められ、それをしないとダウンロードできなかったので仕方なく許可をしてダウンロードして、そのダウンロードしたPDFはAdobeアクロッバットリーダーで見る事ができました。 が、そのPDFはファイルマネージャーで確認したら本体のダウンロードファイルに保存されていたので、SDカードの方にコピーしておきたくて、コピーをしてSDカードのダウンロードファイルに貼り付けようとしたんですが、コピーまではできるんですがSDカードへの貼り付けができません。 前のスマホでは簡単にコピーや貼り付けができていたのに(涙) どうしたら貼り付けできるのでしょうか? 後、ダウンロードしないで直接表示の仕方も知りたいです。 どなたか詳しく解る方、ご教授お願いします。

  • NTFSのアクセス権の「書き込み」の意味

    NTFSのアクセス権の設定で、以下のページを見ると「書き込み」だけを許可した場合、「ファイルの作成/データの書き込み」、「フォルダの作成/データの追加」、「属性の書き込み」、「拡張属性の書き込み」の権限が与えられるとなっています。 http://support.microsoft.com/kb/308419/ja たとえば「書き込み」だけが与えられたフォルダ内にあるWordのファイルを開いて文字を書き込もうとすると開くことができません。 ファイルを開いて読み取りをしないと書き込みができないと思うのですが、ファイルを開かないで書き込みができるのですか。 どうやら、「書き込み」とは、読み取りをしないで書き込むことを意味しているようですが、「書き込み」の意味がわからないです。 ご教示ください。

  • KNOPPIXによるファイル修復

    Windowsの実行ファイルが一つ壊れているためWindowsが起動できないので、 KNOPPIXを使って起動しています。 hd1(Cドライブ)内にアクセスしてsystem32フォルダの中に正常なファイルをコピー したいのですが、 「書き込み許可のないディレクトリにアイテムをドロップすることは出来ません。」 というエラーが出てしまいます。 プロパティを選択してメタ情報を見てみると、書き込みが不可となっています。 許可情報を選択し、「読み取り、書き込みが可能」を選択して、OKをおすと、 「パーミッションが変更できませんでした。」 となります。 なにか設定する方法があるのでしょうか?

  • cgiがアクセス権限がありませんになったりならなかったり

    cgi(nicky)が時折「フォルダかファイルのアクセス権限が、アクセスできない設定になっています。」となり、書き込みができません。 書き込みできるときもあるので、パーミッションの設定は合っているはずと思うのですが、いったい何が原因なのでしょうか?

  • Linuxの場合はCGIの書き込み命令が必要なのでしょうか?

    PerlのCGIをWindowsとLinuxで作成しています。 Windowsでは素直に書き込めますが、Linuxではエラーもなくあたかも正常なように終了しますが、ファイルが書き込まれていません。 open(OUT, "> test.jpg"); binmod OUT; print(OUT $file); close(OUT); Windowsはバイナリ対策でbinmodをつけるおまじないが必要ですがLinuxの場合はCGIの書き込み命令が必要なのでしょうか? ディレクトリ自体を書き込み権限付ければ安直ですが、 ディレクトリのパーミッションはそのままにして書き込みを行いたいです。

    • ベストアンサー
    • CGI
  • 掲示板の設置

    親切なサイトがあり、がんばってcgiを設置してみたいのですが、 各ディレクトリ/ファイルのパーミッション(書き込み権限)を以下のように設定します。 +-- /cgidata/ ...[777] | bbs.dat ...[666] | bbsuser.dat ...[644 ここのパーミッションの設定方法がわかりません。

    • 締切済み
    • CGI