在外部存储中创建文件并在 Windows 文件管理器中打开

问题描述 投票:0回答:1

我的程序创建一个新的 html 文件并将其发送到 ftp 服务器。 为此,我在设备内存中创建一个本地文件。如果我手动创建目录和文件,一切都会正常。当我尝试以编程方式创建目录和文件时,我遇到了问题。如果您在 android studio 中打开资源管理器,则会创建该文件并位于正确的目录中。但是当您尝试通过Windows资源管理器查看该文件时,却没有目录和文件。在这方面(正如我假设的那样)该文件不会发送到 ftp 服务器。搞了很多天都无法解决这个问题。我读过很多关于内存和向内存写入文件主题的文章。请帮我。先感谢您。我是 Android 开发新手。

public void sendFileIntoFTP(FTPClient ftpClient, String codeRes) throws URISyntaxException, IOException {
        @SuppressLint("SdCardPath") String sourceFilePath = Environment.getExternalStorageDirectory() + File.separator + "timetracker" + File.separator + getYear() + File.separator + getMonth();
        Log.d("dirFTP", sourceFilePath);
        String fileName = codeRes + ".html";
        File sourceFile = new File(new URI(sourceFilePath));
        InputStream inputStream = new FileInputStream(sourceFile);
        ftpClient.storeFile(fileName, inputStream);
        if (ftpClient.storeFile(fileName, inputStream)) {
            Log.d("dirFTP", "SUCCESS");
        } else {
            Log.d("dirFTP", "ERROR");
        }
        inputStream.close();
    }

    public void createLocalHTML(String codeRes, Context context) throws IOException {
        @SuppressLint("SdCardPath") File internalDir = new File(Environment.getExternalStorageDirectory() + File.separator + "timetracker" + File.separator + getYear() + File.separator + getMonth());
        Log.d("localDir", String.valueOf(internalDir));
        String fileName = codeRes + ".html";
        File internalFile = new File(internalDir, fileName);
        if (internalFile.exists()) {
//            update file in future....
        }
        if (!internalDir.exists()) {
            internalDir.mkdirs();
            Log.d("mLog", "Directory created in path: " + internalDir);
        }
        internalFile.createNewFile();
        FileWriter writer = new FileWriter(fileName, false);
        writer.write(context.getAssets().open("dataTime.html").toString());
        writer.close();
    }

UPD:我的权限:

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
        tools:ignore="ScopedStorage" />
java android android-studio storage android-external-storage
1个回答
0
投票

尝试在 Windows 资源管理器中按“F5”(=更新内容),或者,如果这没有帮助,请选择其他文件夹并返回到创建的文件夹。如果仍然没有帮助,请断开智能手机与 PC 的连接,然后重新连接。

© www.soinside.com 2019 - 2024. All rights reserved.