2017-10-26 11 views
0

私のプロジェクトで次のコードを成功させようとすると、私は怒ってしまいます。ZipFile.ExtractToDirectoryメソッドを使用しているときにXamarinがIOExceptionをスローする

System.IO.Compression.ZipFile.ExtractToDirectory(filePath, appPath); 

パラメータは次のとおりです。

filePath = "/storage/emulated/0/Flashback_Backup/memory_backup.zip" 
appPath = "/storage/emulated/0/Flashback" 

場合IOExceptionがスローされるべきドキュメントhereによると:

destinationDirectoryNameで指定したディレクトリが既に存在しています。 - または - アーカイブ内のエントリの名前は、空白、空白のみ、または少なくとも1つの無効な文字が含まれています。 - または - アーカイブエントリを抽出すると、destinationDirectoryNameで指定されたディレクトリの外部にあるファイルが作成されます。たとえば、 エントリ名に親ディレクトリ アクセサが含まれている場合に発生する可能性があります。 - または - 抽出するアーカイブエントリは、同じアーカイブからすでに抽出されているエントリと同じ名前です。

私の知る限り、どれも適用されません。 zipファイルは完全に有効なものです。これはDirectory.CreateDirectoryメソッドで圧縮したもので、一意の名前のJSONファイルしかありません。私は既存の "フラッシュバック"フォルダを持っていてもいなくても試しましたが、何も動かないようです。

誰かがアイデアや解決策がある場合は、私が真剣にこれで失われているので教えてください。私は必要に応じてより多くの情報を提供することができます。

+0

あなたの特権をチェックしましたか? – celerno

+0

READ_EXTERNAL_STORAGEとWRITE_EXTERNAL_STORAGEをいくつかの関連性のないものと一緒に追加しました。私はそれが十分であるべきだと思うか、何かが恋しい? – csizmaziakiki

答えて

1

try-catch抽出イントロをラップしようとすると、何が起こっているのかをよりよく理解できます。

try { 
    System.IO.Compression.ZipFile.ExtractToDirectory(filePath, appPath); 
} catch (Exception ex) { 
    Console.Log(ex); 
} 

エラーが発生した場合は、上記のいずれかになります。

+0

回答ありがとうございます。無効なパラメータエラーです。何が問題を引き起こす可能性はまだありません。私はパスに '_'を付けずに試しましたが、何も変わりません。 – csizmaziakiki

関連する問題