精华内容
下载资源
问答
  • java 创建目录

    2020-09-18 11:09:58
    Java File 类当中提供了两个创建目录的方法: 两者存在一定区别: mkdir():必须确保上级目录存在,不存在则创建失败! mkdirs():上级目录可以不存在,不存在则一同创建 也就是说在你使用mkdir方法创建你需要的目录...

    Java File 类当中提供了两个创建目录的方法:
    在这里插入图片描述

    两者存在一定区别:
    mkdir():必须确保上级目录存在,不存在则创建失败!
    mkdirs():上级目录可以不存在,不存在则一同创建
    也就是说在你使用mkdir方法创建你需要的目录时,只要当中有一个上级目录(父类目录)不存在,则创建失败,也就是返回一个false。例如:需要创建的文件路径是 D:/1/2/3/4(需要创建的是文件夹4),而上级目录123中有一个或者多个不存在,就无法创建
    而mkdirs则是,不管123中那些不存在,都会一同创建出来。
    因此在实际项目中经常使用mkdirs,少用mkdir,避免上级目录不存在导致创建失败!当然,方法的使用需要结合实际情况。
    顺便一提,既然涉及到文件相关的问题,那么文件路径是必不可少的!文件路径分为相对路径和绝对路径。如何区分?一般情况下带有盘符C:/、D:/之类前缀的就是绝对路径,没有就是相对路径。读取文件或者文件夹时,参数给到具体盘符和路径的自然是绝对路径,而不提供详细路径的则是相对路径,又或者是不存在的路径及文件。
    这里就提及创建文件目录的好了,如果你使用的是mkdir方法,自然会创建失败,在方法中把该方法的返回值打印就知道了,也就可以去查看路径错在哪里。例如:

    		File dir = new File("D:/xx项目/xx");
    		//创建目录 mkdir()
    		boolean flag = dir.mkdir();
    		System.out.println(flag);
    

    mkdirs方法的话就会都创建出来,如果提供的是相对路径,如:“xx项目/xx”,也没有问题,不影响,但是如果不是提供该项目目录的话,不管是mkdir还是mkdirs都是根据当前目录创建,也就是该项目目录下创建。例如:

         	//创建目录 mkdirs()
    		dir = new File("ccc/test/do/dos");
    		flag = dir.mkdirs();
    		System.out.println(flag);
    

    没有提供盘符和一定的上级目录就会在该项目目录下创建相应的目录。如果你不知道参数内容是相对路径还是绝对路径,还可以这样:
    getPath() : 将此抽象路径名转换为路径名字符串。
    也就是根据情况,如果是相对路径,返回的就是相对路径,绝对路径也是。(就是说,如果提供的路径是绝对路–具体的路径,那么返回的就是绝对路径,否则就是相对路径)
    还有一个需要注意的点,或者说是建议。Java项目的服务器通常是部署到Linux系统上的,而名称分隔符在Linux系统和Window系统上是不一样的,名称分隔符也就不一样了。
    Windows中路径分隔符是\ 比如E:\workspace\Test
    Linux中路径分隔符是/
    url路径分隔符是/
    而java中\是转义字符,所以可以使用/代表分隔符,它会根据系统的不同,自动转化成Windows或者Linux中的分隔符。
    你可以选择这样写 D:\abc\def\g,甚至是使用常量拼接,但是为了方便转义和书写等,建议养成习惯书写成D:/abc/def/g

    展开全文
  • 递归创建目录

    千次阅读 2016-08-25 10:56:46
    我们都知道CreateDirectory()只能创建一级目录,而不能创建多级目录。通过写一个递归函数来实现多级目录创建

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">我们都知道CreateDirectory()只能创建一级目录,而不能创建多级目录。通过写一个递归函数来实现多级目录的创建。</span>

    分为MFC下的和非MFC下的两种,MFC路径是CString类型的,非MFC的路径是wstring类型的。

    下面是MFC下的创建目录:

    void __fastcall RecursiveDirectory(CString cstrDir) // 递归创建目录
    {
    	if (cstrDir.GetLength() <= 3)//是根目录,无需创建目录
    	{
    		return;
    	}
    	if (cstrDir[cstrDir.GetLength()-1] == '\\')   // 将路径改为目录
    	{
    		cstrDir.Delete(cstrDir.GetLength()-1, 1);
    	}
    	// 修改文件属性
    	WIN32_FIND_DATA wfd;
    	HANDLE hFind = FindFirstFile(cstrDir, &wfd); // 查找
    	if (hFind != INVALID_HANDLE_VALUE)
    	{
    		FindClose(hFind);
    		if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    			return;
    	}
    	// 创建当前目录的地目录失败
    	if (CreateDirectory(cstrDir,NULL) == false)
    	{// 退到上一级目录
    		CString wstrNewDir = cstrDir;
    		int n = wstrNewDir.ReverseFind('\\');
    		wstrNewDir = cstrDir.Left(n);
    		
    		// 递归进入
    		RecursiveDirectory(wstrNewDir);  // 递归本函数,再创建目录
    		// 递归退出后创建之前失败的目录
    		CreateDirectory(cstrDir,NULL);  // 递归返回,在存在的目录上再建目录
    	}// 多级目录创建成功
    }

    下面是非MFC的创建目录:

    BOOL RecursiveDirectory(wstring wstrDir)
    {
    	if (wstrDir.length() <= 3)
    	{
    		return FALSE;
    	}
    	if (wstrDir[wstrDir.length() - 1] == '\\')
    	{
    		wstrDir.erase(wstrDir.end() - 1);
    	}
    
    	if (PathFileExists(wstrDir.c_str()))
    		return TRUE;
    
    	if (CreateDirectory(wstrDir.c_str(), NULL) == false)
    	{
    		wstring wstrNewDir = wstrDir;
    		while (wstrNewDir[wstrNewDir.length() - 1] != '\\')
    		{
    			wstrNewDir.erase(wstrNewDir.length() - 1);
    		}
    		// delete '\\' 
    		wstrNewDir.erase(wstrNewDir.length() - 1);
    
    		RecursiveDirectory(wstrNewDir);
    		CreateDirectory(wstrDir.c_str(), NULL);
    	}
    
    	if (!PathFileExists(wstrDir.c_str()))
    		return FALSE;
    	return TRUE;
    }
    注:本函数的PathFileExists()要包含头文件 Shlwapi.h 。



    展开全文
  • 文章创建时间过于久远,很多知识已经不适用,该帖子已删除。

    文章创建时间过于久远,很多知识已经不适用,该帖子已删除。

    展开全文
  • 这个正好对应了tomcat中的umask,意思应该是控制用户权限的。 5、另外一种特殊情况就是:tomcat所属的父级目录没有分配权限导致的子集目录不具备权限问题 6、还有一种比较特殊的情况,就是tomcat自身用户导致...

    环境centos7 + tomcat 8.5

    网上大部分是说权限问题,我个人总结了一下,可能存在以下几种情况:

    1、tomcat没有给写入权限,解决办法,可自行百度命令进行权限设置,我自己设置的是root 777权限

    2、umask导致的版本问题,参考地址:https://blog.csdn.net/weixin_33733810/article/details/92609401

    估计这地址是的人也是复制别人的。 解决办法很简单就是找到tomcat的Bin目录下catalina.sh文件,找到umask部分,注意有很多处,如图:

    图片是8.5 的,这个是我修改过的,没有修改的情况下为0027,修改为0022即可。对应的就是777权限

    3、以上两种都改过或还是不行的话,可能为centos当前登录用户权限问题,建议检查下当前登录用户权限。

    4、以上三种均无误,比如你是root登录的,那么可能是centos系统文件问题,目前我只知道一种情况就是:

    系统/etc/profile文件,检查该部分是否跟我的一样:

    这个正好对应了tomcat中的umask,意思应该是控制用户权限的。

    5、另外一种特殊情况就是:tomcat所属的父级目录没有分配权限导致的子集目录不具备权限问题

    6、还有一种比较特殊的情况,就是tomcat自身用户导致的,这个需要根据自己tomcat配置进行调整一下了,我这里没有创建tomcat用户所以不存在这种特殊情况,建议检查tomcat的user.xml文件

    7、tomcat的server.xml配置问题,有的人应该是对该配置文件进行了特殊的修改,如果存在该情况,建议排查下。

    目前已知的这几种,如果后续遇到会补充。

    遗留特殊问题:

    当前环境安装了"宝塔",tomcat放到了www文件下,www文件由"宝塔"管理,不具备写入权限,而tomcat文件分配了777权限,目前依然是无法创建文件夹。但是如果不安装"宝塔",tomcat放到opt文件夹下就没问题。bug why? 

    展开全文
  • 文章目录前言一、pandas是什么? 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 ...
  • 关于 java通过FTP无法创建目录 困扰了我很久  在正式环境上的两台linux服务器中 通过ftp上传文件, 一直没有找到原因, 通过关闭防火墙,设置被动模式,查看ftp用户写入权限等等都没有找到问题 ,折腾了好几天,后来找到...
  • 因为老师布置的作业里面需要在SQLserver下面创建Intergration Services目录,但是创建之后发现出现了问题如下: 百度之后发现也有人出现过这个问题,有一个人说是没有添加Intergration Service 功能,我不太理解...
  • 这是因为你已经创建了同样的类,在工程目录
  • ubuntu下 C++ 函数创建目录

    千次阅读 2016-11-15 21:10:01
    CreatDirectory 在...ubuntu 系统 采用mkdir创建目录。 注意:  第一个参数类型到转化 如果是string类型,需要转化为 const char 类型。 转换方法如下: 1. string转const char*  string s = "abc";
  • IDEA 中创建多级目录

    2021-03-13 18:41:58
    IDEA 中创建多级目录 1、问题描述 之前跟着网上的教程搭建 Mybatis 快速入门的小 Demo,进行单元测试时居然抛异常了:Cause: java.io.IOException: Could not find resource com/oneby/mapper/UserMapper.xml,我就...
  • 404错误是什么意思?为什么是404?

    万次阅读 2013-04-18 22:12:08
    什么是无边界网络?无边界网络和过去的网络有什么不同吗?…… IIS 状态代码的含义 概要 当用户试图通过 HTTP 或文件传输协议( ftp )访问一台正在运行Internet信息服务(IIS)的服务器上的内容时,...
  • Android 10 创建文件失败

    千次阅读 2020-04-16 18:08:32
    Android 10 改变了文件的存储方式不允许应用随意创建文件夹了,要用安卓提供的文件夹。 Android 10提供了一些文件夹: 例如:Context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS),这个路径是在SD卡...
  • 报错截图如下 前因:svn新下载的项目,启动缓存有点多,idea默认分配的内存不够,所以百度修改了jvm分配,具体如下: 分配后启动正常,第二天打开idea会报上边图片的错误。 原因为idea修改的配置,并不是你从新启动...
  • 1、上传文件总是提示上传根目录不存在,请手动创建,是由于 linux下uplod目录权限不够, 给他权限chmod -R 777 upload
  •   首先看一下Java创建文件目录的代码: /** * 创建父文件路径 * @param imagePath * @return */ public boolean makeParentFolder(String imagePath){ File parentFile = new File(imagePath); ...
  • 达梦数据库连接报错:创建SOCKET连接失败 在安装目录的bin目录下执行命令:disql SYSDBA/SYSDBA 报错:[-70028]:创建SOCKET连接失败. 可以通过一下几个途径排查原因: 1.查看服务是否启动 linux: 执行ps -ef | ...
  • 如果你项目的targetsdkversion大于等于23,按照以往在外部存储上创建目录的方法肯定一直返回false。这种情况在Android6.0之前都是不存在的,6.0在权限管理方面更加全面,在读写外置存储的时候不仅要在manifest中静态...
  • Mac运行项目时/home/logs文件夹创建失败背景解决办法两个方案任选其一:方案一:手动创建目录,然后授予最高权限方案二:修改目录拥有者root的权限组 背景 心心念终于入手一台Mac笔记本,开始了Mac本敲代码的生涯,在使用...
  • //__ROOT__ 为网站根目录地址 $upload->rootPath =__ROOT__. './Public/Uploads/'; $info = $upload->upload(); //$info是一个二维数组 这里面的二维数组是多张图片的数组集合 foreach($info as $v){ } $...
  • Java IO流中偏移量是什么意思

    千次阅读 多人点赞 2019-07-18 22:20:11
    文章目录背景示例前置条件使用 FileInputStream 流读取内容参数详解网上的错误解释正确的解释总结 背景 在使用Java的 IO过程中,肯定遇到过偏移量这个概念。网上也有很多人都解释过,但是有很多的人都被误导理解错...
  • 解决《获取My Document目录错误,可能”我的文档“目录不存在》方法:开始—运行—搜索regedit.exe打开注册表 依次打开注册表以下目录: 开始……运行……搜索regedit.exe,打开regedit.exe 依次打开以下目录: ...
  • emm…查看之后发现是因为项目无法在根目录下找到之前创建的日志文件夹,打开一看,如果没了。@~@ 明明之前存在的啊,emm…升级有风险。 后来在Shared账户中发现了Previously Relocated Items文件夹。意思是重新...
  • java创建文件和目录

    2016-08-31 15:59:36
    import java.io.File; import java.io.IOException; public class CreateFileUtil { ... * 创建目录  * @param destDirName  * @return  */ public static boolean createDir(String d
  • 英文好的可以阅读参考页面地址。...HTTP 400 - 请求无效HTTP 401.1 - 未授权:登录失败HTTP 401.2 - 未授权:服务器配置问题导致登录失败HTTP 401.3 - ACL 禁止访问资源HTTP 401.4 - 未授权:授权被筛...
  • 请尝试手动创建:./Uploads/”   文件夹权限问题   找到ThinkPHP/Library/Think/Upload.class.php 大概是:135行,有一个检测根目录是否存在的操作 下面以local 上传方式为例: 找到ThinkPHP/Librar...
  • 备份行为基本上是创建文件和目录的副本。在Linux系统下,我们可以用cp命令来实现。  copy 命令是什么  正如我们在上文提到的,cp是一个用来创建文件和目录副本的命令。在这里我们提供了一些在日常操作中可能...
  • 备份行为基本上是创建文件和目录的副本。在Linux系统下,我们可以用cp命令来实现。 copy 命令是什么 正如我们在上文提到的,cp是一个用来创建文件和目录副本的命令。在这里我们提供了一些在日常操作中可能用到...
  • C++ 创建文件夹的四种方式

    万次阅读 多人点赞 2018-10-18 16:57:48
    在开头不得不吐槽一下,我要的是简单明了的创建...文章目录调用 dos 命令 system()使用头文件 direct.h 中的 access 和 mkdir 函数调用 MFC 封装好的接口函数 提前说明:从参数角度上看,其实都应该使用 char*,...
  • 关于 创建网络套接字失败 10106

    千次阅读 2014-06-11 12:15:00
    主要是数据库连接不上,卸载后又无法安装,提示创建网络套接字失败 10106 解决方法:重置 winsocket 步骤如下: netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的...
  • 2、使用mysqld --initialize命令前,不要自己创建data目录,否则无法正常生成全部data目录文件,会出现如下错误提示: D:\mysql\mysql-5.7.14-winx64\bin&gt;mysqld --initialize 2016-08-25T02:26:39.100728Z ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 190,823
精华内容 76,329
关键字:

创建目录失败是什么意思