2011-11-11 12 views
1

私のアプリは、USB接続経由でWindowsファイルエクスプローラからユーザーがドロップした新しいファイルの外観をSDカード上のディレクトリにポーリングします。新しいファイルが表示されたら、私のアプリケーションはそれを処理してから削除しますが、ファイルはWindowsのファイルエクスプローラにまだ表示されます。 DDMSファイルエクスプローラにファイルが表示されなくなり、ポーラーが再び起動されないため、ファイルが消えたことがわかります。 AndroidがWindowsのファイルエクスプローラとやりとりする仕組みについての洞察は高く評価されます。 MediaScannerConnectionClientを試してみました。これは、プログラムで作成されたディレクトリを表示するのに役立ちますが、ファイルが消えることはありません。プログラムで削除されたファイルはまだWindowsエクスプローラに表示されます

私はAndroid 3.2をAcer Iconia A500で実行しています。私のPCはWindows XPを実行しています。ファイルは.csvおよび.txtファイルです。私はそれらを削除するFile.delete()を使用しています。

ありがとうございました。

答えて

0

リフレッシュ時にファイルが消えてしまった場合、Windowsがそのディレクトリの下からディレクトリを変更するとは予想されず、変更がないかどうかがチェックされている可能性があります。

+0

もし私がリフレッシュすると、削除されたファイルがまだ表示されます。 USBのプラグを抜いてWindowsエクスプローラをリフレッシュしてからUSBを差し込むと、ファイルはそのまま残ります。しかし、私がソフトを再起動すると、ファイルは消えてしまいます。これは、問題はAndroid側にあると私に思い出させます。 – user1042150

1

LinuxベースのOSであるAndroidは、ファイルハンドルを最後に閉じたときにのみファイルを削除します。ただし、ファイルは、以前は消えてしまうことがあります。

Windowsでは、ファイルハンドルが開いているため、ファイル名はまだ存在しています。だからWindowsは単純にファイルが消えてしまうのを期待していない。

1

これは古い問題ですが、上記の回答は本当に役に立たなかったので、私はいくつかのことを試してみました。 ちょうどあなたがそれを削除した後に削除するファイルにMediaScannerConnectionscanFileメソッドを呼び出します。

File file = new File("..."); 
String absolutePathToFile = file.getAbsolutePath(); 
file.delete(); 

MediaScannerConnection.scanFile(context, new String[]{absolutePathToFile}, null, null); 

私はスキャナは、ファイルの場所をスキャンしたファイルを見つけられないと更新OSのファイルインデックスをかという推測していますエクスプローラがファイルを見えるようにするために必要なものは何でも。

関連する問題