一、问题描述:

  一个项目中为了生成树状目录,调用了file.listFiles()方法,然后利用file.isDirectory()方法判断是否为目录,该程序在windows下运行无问题,在Linux下中文文件夹用该方法判断会失败,具体表现为:isFile()---false; isDirectory()---false;

  查阅资料,很多网帖说是Linux下无法使用isDirectory()进行判断,但是没有解决方案。

  另一方面,程序中显示的文件名为乱码。所以考虑是不是Linux系统的编码问题导致无法正确读取。也有人说java的默认字符集是zh_CN.GB3212,而Linux的默认字符集是zh_CN.UTF-8,查看了一下/etc/sysconfig/i18n,果然是。

  于是修改了Linux的默认字符集,上述问题得以解决,中文文件夹isDirectory()判断无问题,文件名乱码也得以解决。

二、解决方案:

修改Linux下的默认字符集步骤:

vi /etc/profile
export LC_ALL="zh_CN.GB2312"
export LANG="zh_CN.GB2312" vi /etc/sysconfig/i18n
#LANG="zh_CN.UTF-8"
#SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"
LANG="zh_CN.GB2312"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

#使上述修改生效
source /etc/profile
source /etc/sysconfig/i18n

进行修改是要注意大小写,由于我在写的时候把zh_CN.GB2312写成了zh_CN.GB3212,出现以下错误:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (zh_CN.GB3212): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (zh_CN.GB3212): No such file or directory
-bash: warning: setlocale: LC_MESSAGES: cannot change locale (zh_CN.GB3212): No such file or directory
-bash: warning: setlocale: LC_NUMERIC: cannot change locale (zh_CN.GB3212): No such file or directory
-bash: warning: setlocale: LC_TIME: cannot change locale (zh_CN.GB3212): No such file or directory

修改完毕后,重启tomcat,问题解决。

Linux下修改默认字符集--->解决Linux下Java程序种中文文件夹file.isDirectory()判断失败的问题的更多相关文章

  1. CentOS7下修改默认网卡名为eth0的两种方法

    前言 大家都知道CentOS7默认的网卡名称是和设备名称是随机的,如果要修改网卡名称以 eth 开头,有两种方式,如下: 第一种方式 这种方式适合在安装操作系统的时候进行设置, 点击 Tab,打开ke ...

  2. MySQL修改默认字符集

    今天朋友在做某个程序项目时,需要修改MySQL修改默认字符集,搞不好找我帮忙.百度了试了好几篇博文中的方法,最后终于成功了.但是感觉那些博文思路有点乱,所以自己总结下,希望可以帮到遇到同样问题的人. ...

  3. MySQL、MariaDB修改默认字符集

    修改2017.4.9: 最近在使用MariaDB,遇到了同样的问题:中文乱码.因为mariadb他有好几个ini文件,但是可以根据自己开发需要创建一个my.ini,然后我试着去修改mariadb安装目 ...

  4. MariaDB修改默认字符集

    MariaDB修改默认字符集,以及创建数据库授权 1 . 修改server默认字符集utf8 [root@aws my.cnf.d]# vim /etc/my.cnf.d/server.cnf [my ...

  5. java批量解压文件夹下的所有压缩文件(.rar、.zip、.gz、.tar.gz)

    // java批量解压文件夹下的所有压缩文件(.rar..zip..gz..tar.gz) 新建工具类: package com.mobile.utils; import com.github.jun ...

  6. python listdir() 中文路径 中文文件夹 乱码 解决方法

    python listdir() 中文路径 中文文件夹 乱码 解决方法 listdir(path)返回的结果的编码似乎和我们提供的 path 参数的编码有关: path = 'd:/test' try ...

  7. 解决Mac OS X 系统在home文件夹下面操作不支持的方法

    解决Mac OS X 系统在home文件夹下面操作不支持的方法   最近需要使用Mac OS X 系统尝试安装使用appium程序,安装过程中发现,Mac OS X 系统在home文件夹下面操作不支持 ...

  8. atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

    atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...

  9. 解决使用Git找不到.ssh文件夹的办法

    解决使用Git找不到.ssh文件夹的办法 首先生成git密钥 git config --global user.name "你的名字(最好是中文全名)" git config -- ...

随机推荐

  1. Python自动化之异常处理

    1 异常基本结构 try: pass except Exception,ex: pass 2 异常种类 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x ...

  2. 11.5---含有空字符串的字符串查找(CC150)

    注意,1,"" 和 " ".是不同的,空字符串指的是"": 2,注意String的compareTo.小于是指<0.并不是==-1: ...

  3. Walls and Gates

    You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an obstac ...

  4. sharepoint的导航开发

    2.来大体讲一下“导航” (1)全局导航 : 整个网站集的导航:(如果公司的网站有很多子网站,这时便会用到全局导航啦):贴一下主要代码: using Microsoft.SharePoint.Publ ...

  5. poj1155

    题意:给定一个树形图,节点数量3000.叶子节点是用户,每个用户如果能看上电视会交一定的电视费.看上电视的条件是从根到该用户的路径全部被修好,修每条边有一个费用.在不亏损(用户交钱总额>=修路总 ...

  6. vb.net多线程

    Public Class Form1 Dim myThread As Threading.Thread Dim myThread2 As Threading.Thread Private Sub Bu ...

  7. Java for LeetCode 226 Invert Binary Tree

    Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia: This problem wa ...

  8. 没有body怎么添加onload事件

    <script type="text/javascript"> window.onload = function () { setup(); } </script ...

  9. JS中数组Array的用法示例介绍 (转)

    new Array() new Array(len) new Array([item0,[item1,[item2,...]]] 使用数组对象的方法: var objArray=new Array() ...

  10. RecyclerView的万能分割线

    效果图: 使用方法: 添加默认分割线:高度为2px,颜色为灰色 mRecyclerView.addItemDecoration(new RecyclerViewDivider(mContext, Li ...