代码之家  ›  专栏  ›  技术社区  ›  mremremre1

在android中保存公共文件,但PC无法访问文件夹

  •  0
  • mremremre1  · 技术社区  · 9 年前

    我正在尝试为我的应用程序创建一些公共文件夹来保存一些数据。 问题是,当我通过手机[Image 1](使用蓝牙文件传输应用程序)访问文件时,当一切正常时,电脑无法识别子文件夹[Image 2]。

    Image 1

    [图2]电脑上无法识别子文件夹 enter image description here

    我的代码是:

    public void createFile() {
        calendar_time = Calendar.getInstance(Locale.getDefault());
        int hour = calendar_time.get(Calendar.HOUR_OF_DAY);
        int minute = calendar_time.get(Calendar.MINUTE);
        int second = calendar_time.get(Calendar.SECOND);
        String time=String.valueOf(hour)+":"+String.valueOf(minute)+":"+String.valueOf(second);
        String sFileName=date+" "+time+" Part "+String.valueOf(file_counter)+".txt";
    
        try {
            File root = new File(Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_DOCUMENTS), "Main folder/"+date);
            if (!root.exists()) {
                root.mkdirs();
            }
    
            root.setExecutable(true);
            root.setReadable(true);
            root.setWritable(true);
            MediaScannerConnection.scanFile(context, new String[] { root.toString() }, null,
                    new MediaScannerConnection.OnScanCompletedListener() {
                        public void onScanCompleted(String path, Uri uri) {
                        }
                    });
    
            File myfile = new File(root, sFileName);
            writer = new FileWriter(myfile);
            writer.append("Unit\n\n");
            writer.append("#\tValue \tX \tY \tZ \tTime\n\n");
            readyToRecord=true;
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(context, "Error creating file", Toast.LENGTH_SHORT).show();
            stop();
        }
    }
    

    我添加了以下代码,因为我阅读了它会有所帮助

    root.setExecutable(true);
            root.setReadable(true);
            root.setWritable(true);
            MediaScannerConnection.scanFile(context, new String[] { root.toString() }, null,
                    new MediaScannerConnection.OnScanCompletedListener() {
                        public void onScanCompleted(String path, Uri uri) {
                        }
                    });
    

    我希望你能帮助我。 非常感谢。

    2 回复  |  直到 9 年前
        1
  •  1
  •   mremremre1    9 年前

    我找到了解决办法。我将代码更改为

            File root = new File(Environment.getExternalStorageDirectory()+ "/Main folder/"+date);
            if (!root.exists()) {
                root.mkdirs();
            }
            myfile = new File(root.getAbsolutePath(), sFileName);
            writer = new FileWriter(myfile);
    

    环境.目录(U文档)

        2
  •  0
  •   CommonsWare    9 年前

    myfile root ,并且只有在您写信给 你的 FileWriter