从xamarin android中的Java.IO.File变量获取字节数组

时间:2017-08-15 18:47:39

标签: android xamarin.android xamarin.forms java-io

我正在创建一个xamarin表单应用程序,允许用户从外部存储中选择多个音频文件。我在选择多个文件方面取得了成功,但每当我尝试读取文件内容时,它都会给我一个例外,即'System.IO.DirectoryNotFoundException'。我使用以下方法从音频文件中读取字节:

int('0x61', 16)

它总是给我错误。请帮我这个,以便我可以将文件内容读取为字节数组。提前谢谢。

1 个答案:

答案 0 :(得分:0)

  

每当我尝试读取文件内容时,它都会给我一个例外情况' System.IO.DirectoryNotFoundException'

问题是当您使用DirectoryNotFoundException方法获取文件路径时,格式错误。因此,当系统使用此路径搜索文件时,它会告诉您uri.ToString(),实际上,文件路径不存在。

例如,当您使用Path == /file:/storage/emulated/0/netease/cloudmusic/Music/love.MP3 //Not valid 时,您的文件路径如下所示:

uri.Path

解决方案:

使用byteArray = System.IO.File.ReadAllBytes(uri.Path); 代替,使用方法如下:

 uri.Path == /storage/emulated/0/netease/cloudmusic/Music/love.MP3

其文件路径:

<div class="container">
    <div class="panel panel-default">
        <div class="panel-heading">Implementation/Migration Plan</div>
        <div class="panel-body">
            <table class="table table-condensed" width="50">
                <thead>
                    <tr>
                        <th>Activities</th>
                        <th>Duration</th>
                        <th>Responsible</th>
                        <th>Back-out Procedure</th>
                        <th>Remarks</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                    </tr>

                    <tr>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                    </tr>

                    <tr>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                    </tr>

                    <tr>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                    </tr>

                    <tr>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                        <td contenteditable='true'></td>
                    </tr>
                </div>
            </table>
        </tbody>
    </div>
</div>
</div>

现在,它运作正常。