0

我看过一个关于这个问题的例子。但是当我尝试它时,它只是在这段代码中发生了一个错误,File f = new File(Uri.parse(uri.toString()));只是说 Constructor File(Uri) is undefined 。我已经陷入这个错误很多天了。我不知道有什么问题,因为其他人可以工作。以下是建议的代码

public class WiFiDirectBundle extends Serializable {
    private String fileName;
    private String mimeType;
    private Long fileSize;
    private byte[] fileContent;

    public WiFiDirectBundle() {}

    // adds a file to the bundle, given its URI
    public void setFile(Uri uri) {
        File f = new File(Uri.parse(uri.toString()));

        fileName = f.getName();
        mimeType = MimeTypeMap.getFileExtensionFromUrl(f.getAbsolutePath());
        fileSize = f.length();

        FileInputStream fin = new FileInputStream(f);        
        fileContent = new byte[(int) f.length()];
        fin.read(fileContent);
    }

    // restores the file of the bundle, given its directory (change to whatever
    // fits you better)
    public String restoreFile(String baseDir) {
        File f = new File(baseDir + "/" + fileName);
        try {
            FileOutputStream fos = new FileOutputStream(f);
            if (fileContent != null) {
                fos.write(fileContent);
            }

            fos.close();
            return f.getAbsolutePath();

        } catch (IOException e) {
                e.printStackTrace();
        }

        return null;
    }

    public String getFileName() {
        return fileName;
    }

    public String getMimeType() {
        return mimeType;
    }

    public Long getFileSize() {
        return fileSize;
    }
}

这是原始问题: 如何在android中查找通过wifi直接模式传输的文件的文件名? 另外我是Wifi Direct的初学者,我可以成功链接两个设备并传输文件,但我想链接更多设备并依次传输文件有人可以给我一些关于学习它的建议或一些关于如何做的例子。谢谢!

4

2 回答 2

0

您可以使用内容解析器 ContentResolver cr=getContentResolver() 从其 uri 打开文件的输入流;InputStream in=cr.OpenInputStream(file_uri); 您可以使用此输入流从文件中读取

于 2013-06-06T09:50:22.873 回答
0

利用

File f = new File(uri.getPath());

代替

File f = new File(Uri.parse(uri.toString()));

从 Uri 获取文件路径

于 2013-05-29T05:01:34.760 回答