delete(String delFile):删除文件或文件夹
deleteSingleFile(String filePath$Name):删除单文件
deleteDirectory(String filePath):删除文件夹及其中的内容
1、delete方法调用了deleteSingleFile方法和deleteDirectory方法;
2、deleteDirectory方法调用了deleteSingleFile方法;
2、三个方法放在一起,使用时使用delete方法即可,也可以单独使用deleteSingleFile方法和deleteDirectory方法。
/** 删除文件,可以是文件或文件夹
* @param delFile 要删除的文件夹或文件名
* @return 删除成功返回true,否则返回false
private boolean delete(String delFile) {
File file = new File(delFile);
if (!file.exists()) {
Toast.makeText(getApplicationContext(), "删除文件失败:" + delFile + "不存在!", Toast.LENGTH_SHORT).show();
return false;
} else {
if (file.isFile())
return deleteSingleFile(delFile);
return deleteDirectory(delFile);
/** 删除单个文件
* @param filePath$Name 要删除的文件的文件名
* @return 单个文件删除成功返回true,否则返回false
private boolean deleteSingleFile(String filePath$Name) {
File file = new File(filePath$Name);
// 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
if (file.exists() && file.isFile()) {
if (file.delete()) {
Log.e("--Method--", "Copy_Delete.deleteSingleFile: 删除单个文件" + filePath$Name + "成功!");
return true;
} else {
Toast.makeText(getApplicationContext(), "删除单个文件" + filePath$Name + "失败!", Toast.LENGTH_SHORT).show();
return false;
} else {
Toast.makeText(getApplicationContext(), "删除单个文件失败:" + filePath$Name + "不存在!", Toast.LENGTH_SHORT).show();
return false;
/** 删除目录及目录下的文件
* @param filePath 要删除的目录的文件路径
* @return 目录删除成功返回true,否则返回false
private boolean deleteDirectory(String filePath) {
// 如果dir不以文件分隔符结尾,自动添加文件分隔符
if (!filePath.endsWith(File.separator))
filePath = filePath + File.separator;
File dirFile = new File(filePath);
// 如果dir对应的文件不存在,或者不是一个目录,则退出
if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
Toast.makeText(getApplicationContext(), "删除目录失败:" + filePath + "不存在!", Toast.LENGTH_SHORT).show();
return false;
boolean flag = true;
// 删除文件夹中的所有文件包括子目录
File[] files = dirFile.listFiles();
for (File file : files) {
// 删除子文件
if (file.isFile()) {
flag = deleteSingleFile(file.getAbsolutePath());
if (!flag)
break;
// 删除子目录
else if (file.isDirectory()) {
flag = deleteDirectory(file
.getAbsolutePath());
if (!flag)
break;
if (!flag) {
Toast.makeText(getApplicationContext(), "删除目录失败!", Toast.LENGTH_SHORT).show();
return false;
// 删除当前目录
if (dirFile.delete()) {
Log.e("--Method--", "Copy_Delete.deleteDirectory: 删除目录" + filePath + "成功!");
return true;
} else {
Toast.makeText(getApplicationContext(), "删除目录:" + filePath + "失败!", Toast.LENGTH_SHORT).show();
return false;
/** 删除文件,可以是文件或文件夹
* @param delFile 要删除的文件夹或文件名
* @return 删除成功返回true,否则返回false
private boolean delete(String delFile) {
File file = new File(delFile);
if (!file.exists()) {
Toast.makeText(getApplicationContext(), "删除文件失败:" + delFile + "不存在!", Toast.LENGTH_SHORT).show();
return false;
} else {
if (file.isFile())
return deleteSingleFile(delFile);
return deleteDirectory(delFile);
/** 删除单个文件
* @param filePath$Name 要删除的文件的文件名
* @return 单个文件删除成功返回true,否则返回false
private boolean deleteSingleFile(String filePath$Name) {
File file = new File(filePath$Name);
// 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
if (file.exists() && file.isFile()) {
if (file.delete()) {
Log.e("--Method--", "Copy_Delete.deleteSingleFile: 删除单个文件" + filePath$Name + "成功!");
return true;
} else {
Toast.makeText(getApplicationContext(), "删除单个文件" + filePath$Name + "失败!", Toast.LENGTH_SHORT).show();
return false;
} else {
Toast.makeText(getApplicationContext(), "删除单个文件失败:" + filePath$Name + "不存在!", Toast.LENGTH_SHORT).show();
return false;
/** 删除目录及目录下的文件
* @param filePath 要删除的目录的文件路径
* @return 目录删除成功返回true,否则返回false
private boolean deleteDirectory(String filePath) {
// 如果dir不以文件分隔符结尾,自动添加文件分隔符
if (!filePath.endsWith(File.separator))
filePath = filePath + File.separator;
File dirFile = new File(filePath);
// 如果dir对应的文件不存在,或者不是一个目录,则退出
if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
Toast.makeText(getApplicationContext(), "删除目录失败:" + filePath + "不存在!", Toast.LENGTH_SHORT).show();
return false;
boolean flag = true;
// 删除文件夹中的所有文件包括子目录
File[] files = dirFile.listFiles();
for (File file : files) {
// 删除子文件
if (file.isFile()) {
flag = deleteSingleFile(file.getAbsolutePath());
if (!flag)
break;
// 删除子目录
else if (file.isDirectory()) {
flag = deleteDirectory(file
.getAbsolutePath());
if (!flag)
break;
if (!flag) {
Toast.makeText(getApplicationContext(), "删除目录失败!", Toast.LENGTH_SHORT).show();
return false;
// 删除当前目录
if (dirFile.delete()) {
Log.e("--Method--", "Copy_Delete.deleteDirectory: 删除目录" + filePath + "成功!");
return true;
} else {
Toast.makeText(getApplicationContext(), "删除目录:" + filePath + "失败!", Toast.LENGTH_SHORT).show();
return false;
【功能】delete(String delFile):删除文件或文件夹deleteSingleFile(String filePath$Name):删除单文件deleteDirectory(String filePath):删除文件夹及其中的内容【说明】三个方法放在一起,使用时使用delete方法即可,也可以单独使用deleteSingleFile方法和deleteDirectory方法。
2、发布move_base_simple/goal到move_base
3、move_base根据读取到的数据进行跟踪
就是一个将预先采集好的路线发布到ros中,然后ROS根据信息,设置一个一个目标点读取,就不用一下一下的点2D Nav Goal了
rosrun follow follow
在程序中对文件操作是非常常见的,而对文件的操作则不可避免的需要文件的路径,并对文件的路径进行一系列的操作,例如:判断已知的路径是一个目录还是一个文件,路劲是一个文件则该文件的名称是什么,文件的扩展名名是什么等等。在C#中并并没有将文件的路径抽象为一个类,用来表示文件路径就是一个普通的字符串。对文件路径的操作例如,要获取文件名称,可以通过截取字符串或者使用正则表达式来取得。
其实,在.NET类库中,有一个专门的功能类System.IO.Path,对表示文件或在目录路径的string进行操作。下面介绍下利用Path来对文件路径进行的一些诶常用操作。
判断给出的路径或者文件名是否合法
Path.G
//删除文件夹和文件夹里面的文件
public static void deleteDirWihtFile(File dir) {
if (dir == null || !dir.exists() || !dir.isDirectory())
return;
for (File file : dir...
* 删除指定目录下的文件及目录
public static deleteFolderFile(String filePath, boolean deleteThisPath){
if (!TextUtils.isEmpty(filePath)) {
File file = new File(filePath);
if (file.isDirectory()) {
File files[] = file.listFiles();
for (int i = 0; i < files.len.
delete(String delFile):删除文件或文件夹
deleteSingleFile(String filePath$Name):删除单文件
deleteDirectory(String filePath):删除文件夹及其中的内容
1、delete方法调用了deleteSingleFile方法和deleteDirectory方法;
2、deleteDirectory...
方法如下:(可放工具类里使用)
public static boolean deleteFile(String filePath) {
File file = new File(filePath);
if (file.isFile() && file.exists()) {
return file.delete();
return false;
【错误】Non-static method '*' cannot be referenced from a static context【翻译】在静态上下文中不能引用非静态方法'*'【造成原因】直接调用了其他包内的非静态方法。【举例】包 com.test.package1 中有类 TestMethod,该类中有非静态方法 test()。package com.test.Package1;
pub...
一般来说,可以通过 HTTP POST 请求将文件传输到后端。在请求中需要指定文件类型和文件内容。具体实现步骤如下:
1. 创建一个表单,添加一个 input 元素用于选择文件,以及一个 submit 按钮用于提交表单。
```html
<form method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">上传文件</button>
</form>
2. 当用户点击提交按钮时,浏览器会将表单中的数据封装成一个 HTTP POST 请求,并将请求发送到后端。
3. 后端接收到请求后,从请求体中获取文件内容,并将其保存到指定的本地路径中。
下面是一个使用Node.js实现的文件上传的示例代码:
```javascript
const http = require('http');
const formidable = require('formidable');
const fs = require('fs');
http.createServer(function(req, res) {
if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
// 创建表单解析器
const form = new formidable.IncomingForm();
// 设置上传目录
form.uploadDir = './uploads';
// 解析表单数据
form.parse(req, function(err, fields, files) {
// 获取上传的文件
const file = files.file;
// 将文件从临时目录移动到上传目录
fs.rename(file.path, form.uploadDir + '/' + file.name, function(err) {
if (err) throw err;
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('文件上传成功!');
res.end();
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form method="post" enctype="multipart/form-data">');
res.write('<input type="file" name="file"><br>');
res.write('<button type="submit">上传文件</button>');
res.write('</form>');
res.end();
}).listen(8080);
这个示例实现了一个简单的 HTTP 服务器,当用户访问根路径时,服务器会返回一个包含文件上传表单的页面。当用户选择文件并点击提交按钮时,浏览器会将文件上传到服务器,并将文件保存到指定的本地路径中。