Android 台灣中文網

標題: 2個大問題急需解決 [打印本頁]

作者: gn02526721    時間: 2014-6-10 22:35
標題: 2個大問題急需解決
第一個問題是我寫了一個刪除檔案的程式
在執行的時候我以ListView顯示
點選該名稱之後再刪除
可是我刪除了之後發現檔案還在
是甚麼問題
第二個問題是我要清除掉文字檔內文字之後重新輸入
結果閃退
LogCat顯示的結果在以下

  1. 06-10 10:16:52.325: E/AndroidRuntime(793): FATAL EXCEPTION: main
  2. 06-10 10:16:52.325: E/AndroidRuntime(793): java.lang.IllegalArgumentException: File /sdcard/sdcard/111.txt contains a path separator
  3. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.app.ContextImpl.makeFilename(ContextImpl.java:2000)
  4. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.app.ContextImpl.openFileOutput(ContextImpl.java:709)
  5. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:179)
  6. 06-10 10:16:52.325: E/AndroidRuntime(793):         at com.example.LockInBrain.fixitem$3.onClick(fixitem.java:137)
  7. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.view.View.performClick(View.java:4240)
  8. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.view.View$PerformClick.run(View.java:17721)
  9. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.os.Handler.handleCallback(Handler.java:730)
  10. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.os.Handler.dispatchMessage(Handler.java:92)
  11. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.os.Looper.loop(Looper.java:137)
  12. 06-10 10:16:52.325: E/AndroidRuntime(793):         at android.app.ActivityThread.main(ActivityThread.java:5103)
  13. 06-10 10:16:52.325: E/AndroidRuntime(793):         at java.lang.reflect.Method.invokeNative(Native Method)
  14. 06-10 10:16:52.325: E/AndroidRuntime(793):         at java.lang.reflect.Method.invoke(Method.java:525)
  15. 06-10 10:16:52.325: E/AndroidRuntime(793):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
  16. 06-10 10:16:52.325: E/AndroidRuntime(793):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
  17. 06-10 10:16:52.325: E/AndroidRuntime(793):         at dalvik.system.NativeStart.main(Native Method)
複製代碼



求解以上2個問題

作者: whl    時間: 2014-6-11 07:46
檢查檔案路徑及權限是否正確
作者: gn02526721    時間: 2014-6-11 09:32
whl 發表於 2014-6-11 07:46
檢查檔案路徑及權限是否正確

我有給予權限
另外檔案路徑也是對的
作者: CarolHsieh    時間: 2014-6-12 09:27
你好
看起來像是叫用文件的部分有問題
是否貼一下有叫用文件的程式部分
或是你在叫用文件的程式中下判斷
檢查叫用的文件是否有存在?
File file =xxxxxxxx;
如果有存在
if(file.exists){}
沒有的話
else{}

作者: david30408    時間: 2014-6-12 10:31
如果是SD卡內的資料刪除後  重新掃描SD卡
作者: gn02526721    時間: 2014-6-12 15:01
david30408 發表於 2014-6-12 10:31
如果是SD卡內的資料刪除後  重新掃描SD卡

痾.................不是要把SD卡的資料刪除
而是要把指定的檔案刪除

另外一個是要清除指定文件內的所有文字
作者: gn02526721    時間: 2014-6-12 15:02
CarolHsieh 發表於 2014-6-12 09:27
你好
看起來像是叫用文件的部分有問題
是否貼一下有叫用文件的程式部分

我有確認存在
也有確認是否為檔案
但是還是存在
作者: david30408    時間: 2014-6-13 01:35
gn02526721 發表於 2014-6-12 15:01
痾.................不是要把SD卡的資料刪除
而是要把指定的檔案刪除

1.就是把你指定SD卡的某個檔案在刪除完後,你的listview需要刷新notifyDataSetChanged()
   如果是按了刪除但是還在 那就是要確認路徑是否有錯誤

2.就是要看你的code才會知道問題  如果只看exception只能大概猜是否是輸入輸出方法有錯

總之就是要看code才會知道問題


作者: gn02526721    時間: 2014-6-13 23:05
david30408 發表於 2014-6-13 01:35
1.就是把你指定SD卡的某個檔案在刪除完後,你的listview需要刷新notifyDataSetChanged()
   如果是按了刪 ...


我試試看

另外 能幫我看第二個問題嗎
作者: davidshyu    時間: 2014-6-14 02:22
讀寫權限:yes
delete()-->檔案還在?
1.其他程式正在使用無法刪除
2.路徑及檔案名稱是否正確
"/ "一般常犯的錯誤
作者: gn02526721    時間: 2014-6-15 21:12
davidshyu 發表於 2014-6-14 02:22
讀寫權限:yes
delete()-->檔案還在?
1.其他程式正在使用無法刪除

"/"這個是沒問題的 沒有多也沒有少 剛剛好
是因為我先用了清除所有文字內容之後再新增陣列內文字進去的關係嗎




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1