android - 将 CSV 文件从 Android 设备传输到 PC
问题描述
我有一个使用以下方法生成 csv 文件的应用程序,
protected void makeCsvFileTrackLog() {
final String CSV_SEPARATOR = ",";
System.out.println("startMakeFile");
Date T = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String szDateTime = sdf.format(T);
SimpleDateFormat date = new SimpleDateFormat("yyyyMMdd");
String szDate = date.format(T);
//creates /flightData directory on device if not created yet...
File appDir = new File(Environment.getExternalStorageDirectory(), "flightData");
appDir.mkdir();
//creates new file if needed for sampling date
File exportDir = new File(Environment.getExternalStorageDirectory(), "flightData/" + szDate);
exportDir.mkdir();
try {
File csvSandboxFile = new File(Environment.getExternalStorageDirectory() + "/flightData/" + szDate, "TracklogDB_" + szDateTime + ".csv");
csvSandboxFile.createNewFile();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvSandboxFile), "UTF-8"));
DBAdapter msdb = new DBAdapter(getApplicationContext(), szDbName, null);
db = msdb.getWritableDatabase();
Cursor c = db.rawQuery("SELECT * FROM trackLogDB", null);
StringBuffer sb = new StringBuffer();
...
} catch (IOException e) {
Log.e("IOException", "exception in createNewFile() method");
}
System.out.println("endMakeFile");
}
这构建文件没有问题。但是,当技术人员和普通用户尝试将数据从设备卸载到 PC 时,就会出现问题。我们的大多数设备都运行 Android 版本 7 或 8。PC 是当前的 Linux 或 Win10。为了卸载数据,必须在连接到 PC 之前重新启动 android 设备。连接后,用户在 Android 设备上选择通过 USB 传输文件。如果 PC 是 Win10,则必须等待 Windows 操作系统正确检测到 Android 单元。然后,他们必须浏览到设备上 CSV 文件所在的目录。但是,新创建的 CSV 文件在目录中“通常”不可见,直到他们刷新它。有时只需简单的刷新即可,有时则必须关闭并重新打开目录。
问题 #1:我可以在 Android 应用程序端做些什么来让我的 CSV 文件更容易被发现?
问题 #2:我可以对 windows 或 Linux 框做些什么来帮助他们找到 Android 单元上的文件?
注意:这些 CSV 不包含“私人”数据。
解决方案
推荐阅读
- icalendar - Web 日历中的 ics 事件更新失败
- gearman - Gearman:第一次使用的麻烦
- python - 安装 virtualenvwrapper virtualenvwrapper.sh 位置时出错
- laravel - 如何将 font-awesome 导入 Laravel?
- jquery - Hybris 中的产品比较
- python - 多对一合并,左加入python
- powershell - Powershell get-adcomputer - 过滤选项对象值
- rest - 启动 HTTP 服务器时如何使用 maven 编译器插件传递参数?
- kibana - 用户管理权限错误
- javascript - d3 将元素重置为其原始颜色