如何从内部存储中获取文件

时间:2014-07-29 08:32:06

标签: android file filepath

我的应用生成文本文件并将其存储在内部存储中。 读取和写入文件没有问题,但是当我尝试使用(wlan)ftp将文件发送到笔记本电脑时,它会抛出异常File not found(no such file or directory )

然后在调试后我发现这是文件路径的问题。所以我像这样硬编码文件路径

创建并写入文件

 String path=context.getFilesDir().getAbsolutePath();

             File file = new File(path + File.separator + fileName);
             RandomAccessFile rf = new RandomAccessFile(file,"rws"); 
             file.getParentFile().mkdirs();
                Log.d("Created In",path);// in log path i found "/data/data/com.meta.Myapp/files"

                byte[] text = new byte[(int) file.length()];
                rf.readFully(text);
                rf.seek(0);
                rf.writeBytes(data);
                rf.write(text);
                Log.d("write","writing file...");
                rf.close();

发送文件的客户端代码

  sock = new Socket("192.168.2.2", 21); 
          // sendfile

                String path="/data/data/com.meta.Myapp/files";

                Log.d("Fetching From",path);

                File myFile = new File ( path+ File.separator + fname); 
                byte [] mybytearray  = new byte [(int)myFile.length()];
                FileInputStream fis = new FileInputStream(myFile);
                BufferedInputStream bis = new BufferedInputStream(fis);
                bis.read(mybytearray,0,mybytearray.length);
                OutputStream os = sock.getOutputStream();
                Log.d("Sending","Sending in progress");
                os.write(mybytearray,0,mybytearray.length);
                os.flush();

              sock.close();

现在这样做没问题。但我不应该使用硬编码文件路径。所以如何获取文件路径来获取文件。因为客户端部分在AsyncTask中运行<>我不能使用Context.getFilesDir().getPath(),我不知道如何将上下文传递给AsyncTask<>那么我该如何解决这个问题

0 个答案:

没有答案