1. windows系统下mkdir
- windows下创建文件夹有
两种方法
,只需要一个路径的参数:
-
①使用cmd命令mkdir,举例:system(“mkdir D:\dic”);
这条命令执行mkdir程序,在D盘创建一个文件夹dic。 -
②使用windows提供的
CreateDictionary函数
,需要包含头文件windows.h,使用方法:CreateDictionary("D:\\dic", NULL);
同样在D盘创建一个文件夹dic,因为转义字符的问题所以用两个斜杠。
这个命令和函数我就不详细解释了,分别参考mkdir和CreateDictionary的百度百科。
这里强调一下,这里说的mkdir是cmd命令,CreateDictionary是windows API函数。 -
代码
#include<direct.h>
int _mkdir( const char *dirname );
- 参数
dirname是目录的路径名指针
- 返回值
如果新目录的创建时间,这些功能中的每一个返回值 0。 在错误,则函数返回 – 1,只能创建一级目录,即path倒数第二级必须是已经存在,否则创建不成功。
如果需要创建多级目录
-
windows下mkdir和_mkdir的区别
没有下划线的位不符合ISO c++ 标准的写法,标准要求带下划线的标准,没有下划线的是为了兼容以前的版本。 -
如下:
char szPath[256] = { 0x00 };
sprintf_s(szPath, 256, “%s/%d/%d/”, “D:/SVN”, 520, 1);
char* szBefore = szPath;
while (*szBefore)
{
if (*szBefore == ‘/’)
{
char szDir[128] = { 0x00 };
strncpy_s(szDir, 128,szPath, szBefore - szPath);
int nRet = 0;
if (_access(szDir, 0) != 0)
nRet = _mkdir(szDir);
}
szBefore++;
}
if (_access(szPath, 0) != 0)
_mkdir(szPath);
2. linux系统下mkdir
- Linux下,mkdir()需要两个参数,第一个是
路径
,第二个是权限
system("mkdir -p F:\data");
- 代码
#includ22e <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
- 参数
pathname 路径名字
mode_t 模式
- 函数说明
mkdir()函数以mode方式创建一个以参数pathname命名的目录,mode定义新创建目录的权限。
- 返回值
若目录创建成功,则返回0;否则返回-1,并将错误记录到全局变量errno中。
- mode
S_IRUSR
S_IREAD
S_IWUSR
S_IWRITE
S_IXUSR
S_IEXEC
S_IRWXU
This is equivalent to (S_IRUSR | S_IWUSR | S_IXUSR).
S_IRGRP
Read permission bit for the group owner of the file. Usually 040.
S_IWGRP
Write permission bit for the group owner of the file. Usually 020.
S_IXGRP
Execute or search permission bit for the group owner of the file. Usually 010.
S_IRWXG
This is equivalent to (S_IRGRP | S_IWGRP | S_IXGRP).
S_IROTH
Read permission bit for other users. Usually 04.
S_IWOTH
Write permission bit for other users. Usually 02.
S_IXOTH
Execute or search permission bit for other users. Usually 01.
S_IRWXO
This is equivalent to (S_IROTH | S_IWOTH | S_IXOTH).
S_ISUID
This is the set-user-ID on execute bit, usually 04000. See How Change Persona.
S_ISGID
This is the set-group-ID on execute bit, usually 02000. See How Change Persona.
S_ISVTX
This is the sticky bit, usually 01000.
S_IRWXU 00700权限,代表该文件所有者拥有读,写和执行操作的权限
S_IRUSR(S_IREAD) 00400权限,代表该文件所有者拥有可读的权限
S_IWUSR(S_IWRITE) 00200权限,代表该文件所有者拥有可写的权限
S_IXUSR(S_IEXEC) 00100权限,代表该文件所有者拥有执行的权限
S_IRWXG 00070权限,代表该文件用户组拥有读,写和执行操作的权限
S_IRGRP 00040权限,代表该文件用户组拥有可读的权限
S_IWGRP 00020权限,代表该文件用户组拥有可写的权限
S_IXGRP 00010权限,代表该文件用户组拥有执行的权限
S_IRWXO 00007权限,代表其他用户拥有读,写和执行操作的权限
S_IROTH 00004权限,代表其他用户拥有可读的权限
S_IWOTH 00002权限,代表其他用户拥有可写的权限
S_IXOTH 00001权限,代表其他用户拥有执行的权限