黑马程序员技术交流社区
标题:
请教关于22天视频MyWindowTest.java中的一个问题
[打印本页]
作者:
王冰
时间:
2012-7-12 15:19
标题:
请教关于22天视频MyWindowTest.java中的一个问题
本帖最后由 王冰 于 2012-7-12 15:20 编辑
private void showDir()
{
String dirPath = tf.getText();//这里获得的是形如
"F:\javaCode\day12"
这样的路径,也就是下面图中的那样
File dir = new File(dirPath);//故这里File接收进来的应该也是上面那样的路径,那么他是怎么样分析的?
//File构造方法中不是应该接收的是形如
"F:\\javaCode\\day12"
这样的路径吗?
if (dir.exists() && dir.isDirectory())
{
ta.setText("");
String[] names = dir.list();
for (String name : names )
{
ta.append(name+"\r\n");
}
}
else
{
String info = "找不到"+dirPath+"目录,请确认此目录有效或重新输入目录";
lab.setText(info);
d.setVisible(true);
}
}
QQ截图20120712151320.jpg
(24.19 KB, 下载次数: 17)
下载附件
2012-7-12 15:17 上传
运行后输入的路径
作者:
温少邦
时间:
2012-7-12 16:55
TextField的getText会对你读到的
"F:\javaCode\day12"
中的\进行自动转义
实际上字符串里面存的还是"F:\\javaCode\\day12"
作者:
游兴钟
时间:
2012-7-12 17:58
本帖最后由 achilles 于 2012-7-12 17:59 编辑
//File file = new File("c:\\\\dir");
//File file = new File("c:////dir");
//File file = new File("c:/dir");
file.mkdir();
我做了实验,以上3种写法都可以成功创建一个名为dir的文件
String dir = "c:\\dir"
File file = new File(dir);
System.out.println(dir);
不知道楼主有没有注意过这个细节,dir我们写的时候是c:\\dir 但你打印dir的时候控制台显示的却是c:\dir
还有我们直接写"c:\dir"编译器就会报错,所以我们写成"c:\\dir"实际上是为了"欺骗"编译器的
我们都知道java不具备在XP系统中创建文件的能力,它实际上上调用系统的资源创建的文件,根据以上的实验,我个人推断系统在拿到我们输入的字符串路径会按照类似于正则的一种规则,比如按照"\\+"和"/+"进行切割分离出路径,然后再根据我们的Java命令创建文件对象
所以我认为你构造函数中传入的dirpath实际上还是"F:\javaCode\day12"这个字符串
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2