C 判断路径存在

1   用   int   access(const   char   *pathname,   int   mode);   判断有没有此文件或目录 --它区别不出这是文件还是目录
2   用   int   stat(const   char   *file_name,   struct   stat   *buf); 判断该文件或目录是否否存在 ;得到st_mode,然后判断是不是目录文件。 
    stat()系统调用看是否成功,不成功就不存在,成功判断返回的st_mode是否是一个文件夹。

********************************************************************
linux c关于目录是否存在,新建目录等操作
1. 创建目录

#include <sys/stat.h>
       #include <sys/types.h>

int mkdir(const char *pathname, mode_t mode);

运用条件:只能在已存在的目录下建立一级子目录

返回值:  返回0表示成功,返回-1表述出错。

mode 表示新目录的权限,可以取以下值:

其中,mode就用0777,0755这种形式。

2. 判断一个目录是否存在

可以使用opendir来判断,这是比较简单的办法。

#include <sys/types.h>
       #include <dirent.h>

DIR *opendir(const char *name);

The  opendir()  function  opens  a  directory  stream  corresponding to the directory name, and returns a pointer to the directory

stream.  The stream is positioned at the first entry in the directory.

代码
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <cstddef>
int main()
{
 if(NULL==opendir("/d1/liujian/readdb/adTest/data/html"))
   mkdir("/d1/liujian/readdb/adTest/data/html",0775);
 return 0;
}

以上代码可以测试一个目录是否存在,如果不存在就创建这个目录。

***********************************

#include<stdio.h>
#include<string.h>
#include<errno.h>

#include<unistd.h>

#include<dirent.h>
#include<sys/types.h>
#include<sys/stat.h>

extern int errno;

#define MODE (S_IRWXU | S_IRWXG | S_IRWXO)

int mk_dir(char *dir)
{
    DIR *mydir = NULL;
    if((mydir= opendir(dir))==NULL)//判断目录 
    {
      int ret = mkdir(dir, MODE);//创建目录
      if (ret != 0)
      {
          return -1;
      }
      printf("%s created sucess!/n", dir);
    }
    else
    {
        printf("%s exist!/n", dir);
    }

return 0;
}

int mk_all_dir(char *dir)
{
    bool flag = true;
    char *pDir = dir;
    while (flag)
    {
        char *pIndex = index(pDir, ‘/‘);
        if (pIndex != NULL && pIndex != dir)
        {
            char buffer[512] = {0};
            int msg_size = pIndex - dir;
            memcpy(buffer, dir, msg_size);
            int ret = mk_dir(buffer);
            if (ret < 0)
            {
                printf("%s created failed!/n", dir);
            }
        }
        else if (pIndex == NULL && pDir == dir)
        {
            printf("dir is not directory!/n");
            return -1;
        }
        else if (pIndex == NULL && pDir != dir)
        {
            int ret = mk_dir(dir);
            if (ret < 0)
            {
                printf("%s created failed!/n", dir);
            }

break;
        }

pDir = pIndex+1;

}

return 0;
}

int main()
{
    char buffer[512] = {0};
    printf("please input path mane/n");
    fgets(buffer, sizeof(buffer), stdin);
    
    char *pIndex = index(buffer, ‘/n‘);
    if (pIndex != NULL)
    {
        *pIndex = ‘/0‘;
    }

printf("check path mane %s/n", buffer);

int ret = mk_all_dir(buffer);
    if (ret < 0)
    {
        printf("% mkdir failed!/n", buffer);
        return -1;
    }

return 0;
}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

int main()

{

  struct stat buf;

  stat("////etc",&buf);

  if (S_ISDIR(buf.st_mode) == 0)

      {

          printf("\n\t/etc is not directory !\n\n");

          //mkdir("/etc/123", 0755);

      }

  else

    printf("\n\t/etc is directory !\n\n");

  return 0;

}

#define FILENAME ***.****
BOOL Check(char * filename)
{
  if(access(filename,0) == 0)
  return true;
  else
  return false;
}
int main()
{
  Check(FILENAME );
}
pasting

时间: 2024-10-16 06:54:16

C 判断路径存在的相关文章

C# 判断路径是否存在

? 1 2 3 4 5 6 7 定义文件状态枚举:0-路径为空,1-存在文件,2-路径不为空,但文件不存在  public enum FileExsitStatus  {        NoPath=0,        FileExsit=1,        NoFile=2  } 利用File文件操作类判断文件是否存在: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /// <summary> /// 判断指定路径的文件是否存

C# 判断路径和文件存在

1.判断路径是否存在,不存在则创建路径: 1 if (!System.IO.Directory.Exists(@"D:\Export")) 2 { 3 System.IO.Directory.CreateDirectory(@"D:\Export");//不存在就创建目录 4 } 2.判断文件是否存在: 1 if(File.Exists(@"文件路径")) 2 { 3 //存在 4 } 5 else 6 { 7 //不存在 8 } 需using

shell 判断路径

判断路径 if [ -d /root/Desktop/text/123 ];then echo "找到了123" if [ -d /root/Desktop/text ] then echo "找到了text" else echo "没找到text" fi else echo "没找到123文件夹" fi 原文地址:https://www.cnblogs.com/sharesdk/p/8710161.html

判断路径是目录还是文件

//strPath为需要判断的路径 if ( GetFileAttributes(strPath) & FILE_ATTRIBUTE_DIRECTORY ) { MessageBox("Is a Directory"); } else { MessageBox("Is not a Directory"); } 还可以用以下函数 BOOL PathIsDirectory( LPCTSTR pszPath ); Verifies that a path is a

Python --判断路径是否为目录或文件

os.path.isdir( ) 函数:判断某一路径是否为目录 os.path.isdir(path) os.path.isfile( ) 函数:判断某一路径是否为文件 os.path.isfile(path) path:要进行判断的路径 实例:判断E:\照片 这个路径是否为目录或文件 1 import os 2 print('判断该路径是否为目录:',os.path.isdir('E:\照片')) 3 print('判断该路径是否为文件:',os.path.isfile('E:\照片')) 原

java判断路径是文件夹还是文件

当给定一个路径没有后缀的时候,很难分辨代码是文件还是文件夹,如下图: 我在桌面建立了一个名为one的文件,路径为:/Users/XXXXXX/Desktop/one java代码如下: import java.io.File; public class Flie_or_Folder { public static void main(String s[]){ String path ="/Users/XXXXX/Desktop/one"; File file = new File(pa

判断路径

public static void CheckDirectoryExistAndCreate(string directory) { if (System.IO.Directory.Exists(directory) == false) { System.IO.Directory.CreateDirectory(directory); } } 原文地址:https://www.cnblogs.com/qiu18359243869/p/9847729.html

C++ stat判断路径是文件还是目录

1 #include <iostream> 2 #include <sys/stat.h> 3 4 using namespace std; 5 6 void foo ( const char* path ) { 7 struct stat s; 8 if ( stat ( path, &s ) == 0 ) { 9 if ( s.st_mode & S_IFDIR ) { 10 cout << "DIR" << endl

判断指定路径文件夹是否存在,如果不存在就新建文件夹

void CWireLessDlg::CreatePakcetFile(){ CString   strFolderPath; strFolderPath = _T("D:\\无线通信板报文存储文件夹"); if(!PathIsDirectory(strFolderPath))//判断路径是否存在        CreateDirectory(strFolderPath,NULL);//新建文件夹 strFolderPath = _T("D:\\无线通信板报文存储文件夹\\U