【IOS】史上最全文件操作NSFileManager

2023-05-16

功能列表

//判断文件是否存在
+ (BOOL)fileExistsAtPath:(NSString *)aPath;
//判断文件是否存在Documents下
+ (BOOL)fileExistsAtDocumentsWithFileName:(NSString *)afileName;
//判断文件夹是否存在
+ (BOOL)dirExistAtPath:(NSString *)aPath;


//创建目录
+ (BOOL)createPath:(NSString *)aPath;
// 创建目录的上级目录
+ (BOOL)createParentDirectory:(NSString *)aPath;
// 目录下创建文件
+ (BOOL)createFileWithPath:(NSString *)aPath content:(NSData *)aContent;
// documents下创建文件
+ (BOOL)createFileAtDocumentsWithName:(NSString *)aFilename content:(NSData *)aContent;
+ (NSString *)createFileWithName:(NSString *)aFilename content:(NSData *)aContent;
//TMP下创建文件
+ (NSString *)createFileAtTmpWithName:(NSString *)aFilename content:(NSData *)aContent;
// Caches下创建文件
+ (BOOL)createFileAtCachesWithName:(NSString *)aFilename content:(NSData *)aContent;
//在Document下创建文件目录
+ (BOOL)createDirectoryAtDocument:(NSString *)aDirectory;
// 删除文件
+ (BOOL)deleteFileWithName:(NSString *)aFileName error:(NSError **)aError;
//删除指定路径下的文件
+ (BOOL)deleteFileWithUrl:(NSURL *)aUrl error:(NSError **)aError;
//删除文件夹下的所有文件
+ (BOOL)deleteAllFileAtPath:(NSString *)aPath;
//根据文件名删除document下的文件
+ (BOOL)deleteFileAtDocumentsWithName:(NSString *)aFilename error:(NSError **)aError;


//读取文件
+ (NSData *)readFileWithPath:(NSString *)aPath;
+ (NSData *)readFileWithURL:(NSURL *)aUrl;
+ (NSData *)readFileAtDocumentsWithFileName:(NSString *)aFileName;
//获取临时目录下的所有文件列表
+ (NSArray *)getContentsOfTmpDirectorByTimeOrder;
// 获取文件大小
+ (unsigned long long)fileSizeAtPaht:(NSString *)aPath;
//遍历文件夹下的所有文件,不含子文件
+ (NSArray *)getContentsOfDirectoryAtPath:(NSString *)aDirString;
//遍历文件夹下的所有文件,包含子文件
+ (NSArray *)getAllFilesAtPath:(NSString *)aDirString;
//获取路径下通过时间排序的文件列表
+ (NSArray *)getContentsOfDirectoryByTimeOrderAtPath:(NSString *)aDireString;


//复制一个目录下的文件到另外一个目录,前后两个必须一致,要么都是目录,要么都是文件
+ (BOOL) copyItemAtPath:(NSString *)aPath toPath:(NSString *)aDestinationPath error:(NSError **)aError;
//重命名文件
+ (BOOL)renameFileNameFrom:(NSString *)aOldName toPath:(NSString *)aNewName error:(NSError **)aError;

具体实现


static NSFileManager *iFileManager;

+ (NSFileManager *)getNSFileManager{
    
    if (!iFileManager) {
        iFileManager = [NSFileManager defaultManager];
    }
    return iFileManager;
}

#pragma mark - >>>>>>>>> 判断 <<<<<<<<<<<

#pragma mark - 判断文件是否存在
+ (BOOL)fileExistsAtPath:(NSString *)aPath{
    
    BOOL result = NO;
    if (aPath) {
        result = [[self getNSFileManager] fileExistsAtPath:aPath];
    }
    return result;
}

#pragma mark - 判断文件是否存在Documents下
+ (BOOL)fileExistsAtDocumentsWithFileName:(NSString *)afileName{
    
    BOOL result = NO;
    if (afileName) {
        NSString *fullFileNamePath = [self getFullDocumentPathWithName:afileName];
        result = [[self getNSFileManager] fileExistsAtPath:fullFileNamePath];
    }
    return result;
}

#pragma mark - 判断文件夹是否存在
+ (BOOL)dirExistAtPath:(NSString *)aPath
{
    BOOL isDir = NO;
    BOOL result = [[self getNSFileManager] fileExistsAtPath:aPath isDirectory:&isDir];
    return result && isDir;
}

#pragma mark - >>>>>>>>>创建<<<<<<<<<<<

#pragma mark - 创建目录
+ (BOOL)createPath:(NSString *)aPath{
    
    BOOL result = NO;
    result =[self createParentDirectory:aPath];
    if (result) {
        result = [ [self getNSFileManager] createDirectoryAtPath:aPath withIntermediateDirectories:YES attributes:nil error:nil];
    }
    return result;
}

#pragma mark - 创建目录的上级目录
+ (BOOL)createParentDirectory:(NSString *)aPath
{
    //存在上级目录,并且上级目录不存在的创建所有的上级目录
    BOOL result = NO;
    NSString *parentPath = [self getParentPath:aPath];
    if (parentPath && ![self dirExistAtPath:parentPath]) {
        return [[self getNSFileManager] createDirectoryAtPath:parentPath withIntermediateDirectories:YES attributes:nil error:nil];
    }
    else if ([self dirExistAtPath:parentPath]){
        result = YES;
    }
    
    return result;
}

#pragma mark 目录下创建文件
+ (BOOL)createFileWithPath:(NSString *)aPath content:(NSData *)aContent
{
    BOOL result = NO;
    result = [self createParentDirectory:aPath];
    if (result) {
        result = [[self getNSFileManager] createFileAtPath:aPath contents:aContent attributes:nil];
    }
    return result;
}

#pragma mark documents下创建文件
+ (BOOL)createFileAtDocumentsWithName:(NSString *)aFilename
                              content:(NSData *)aContent
{
    NSString *filePath =[self getFullDocumentPathWithName:aFilename];
    BOOL result = [self createFileWithPath:filePath
                                   content:aContent];
    return result;
}
+ (NSString *)createFileWithName:(NSString *)aFilename
                         content:(NSData *)aContent
{
    NSString *filePath =[self getFullDocumentPathWithName:aFilename];
    BOOL result = [self createFileWithPath:filePath
                                   content:aContent];
    if(!result)
    {
        filePath = nil;
    }
    return filePath;
}

#pragma mark TMP下创建文件
+ (NSString *)createFileAtTmpWithName:(NSString *)aFilename
                              content:(NSData *)aContent
{
    NSString *filePath =[self getFullTmpPathWithName:aFilename];
    BOOL result = [self createFileWithPath:filePath
                                   content:aContent];
    if(!result)
    {
        filePath = nil;
    }
    return filePath;
    
}
#pragma mark Caches下创建文件
+ (BOOL)createFileAtCachesWithName:(NSString *)aFilename
                           content:(NSData *)aContent
{
    NSString *filePath =[self getFullCachesPathWithName:aFilename];
    BOOL result = [self createFileWithPath:filePath
                                   content:aContent];
    return result;
}
#pragma mark 在Document下创建文件目录
+ (BOOL)createDirectoryAtDocument:(NSString *)aDirectory
{
    NSString * directoryAll = [self getFullDocumentPathWithName:aDirectory];
    
    BOOL result = [ [self getNSFileManager] createDirectoryAtPath:directoryAll
                                      withIntermediateDirectories:YES
                                                       attributes:nil
                                                            error:nil];
    return result;
}

#pragma mark - >>>>>>>>>删除<<<<<<<<<

#pragma mark 删除文件
+ (BOOL)deleteFileWithName:(NSString *)aFileName
                     error:(NSError **)aError
{
    NSFileManager *tempFileManager = [self getNSFileManager];
    return [tempFileManager removeItemAtPath:aFileName
                                       error:aError];
}

#pragma mark - 删除指定路径下的文件
+ (BOOL)deleteFileWithUrl:(NSURL *)aUrl error:(NSError **)aError
{
    return [[self getNSFileManager] removeItemAtURL:aUrl error:aError];
}

#pragma mark 删除文件夹下的所有文件
+ (BOOL)deleteAllFileAtPath:(NSString *)aPath
{
    BOOL result = NO;
    NSArray *fileArray = [self getContentsOfDirectoryAtPath:aPath];
    
    
    NSString *filePath = nil;
    
    for (int i = 0; i<[fileArray count]; i++)
    {
        filePath = [aPath stringByAppendingPathComponent:[fileArray objectAtIndex:i]];
        result = [[self getNSFileManager] removeItemAtPath:filePath
                                                     error:nil];
        if (!result)
        {
            break;
        }
        filePath = nil;
    }
    return result;
}

#pragma mark 根据文件名删除document下的文件
+ (BOOL)deleteFileAtDocumentsWithName:(NSString *)aFilename
                                error:(NSError **)aError
{
    NSString *filePath = [self getFullDocumentPathWithName:aFilename];
    return [self deleteFileWithName:filePath
                              error:aError];
}

#pragma mark 读取文件
+ (NSData *)readFileWithPath:(NSString *)aPath
{
    NSData *data = [NSData dataWithContentsOfFile:aPath];
    return data;
}

+ (NSData *)readFileWithURL:(NSURL *)aUrl
{
    NSData *data = [NSData dataWithContentsOfURL:aUrl];
    return data;
}
+ (NSData *)readFileAtDocumentsWithFileName:(NSString *)aFileName
{
    NSString *fullPathWithName =  [self getFullDocumentPathWithName:aFileName];
    NSData *data = [NSData dataWithContentsOfFile:fullPathWithName];
    return data;
}

#pragma mark - 获取临时目录下的所有文件列表
+ (NSArray *)getContentsOfTmpDirectorByTimeOrder
{
    return [self getContentsOfDirectoryByTimeOrderAtPath:[self getTmpPath]];
}
#pragma mark - 获取文件大小
+ (unsigned long long)fileSizeAtPaht:(NSString *)aPath
{
    return  [[[self getNSFileManager] attributesOfItemAtPath:aPath  error:nil] fileSize];
}

#pragma mark - >>>>>>>>>获取<<<<<<<<<<<

#pragma mark - 获取上级目录
+ (NSString *)getParentPath:(NSString *)aPath
{
    // //删除最后一个目录
    return [aPath stringByDeletingLastPathComponent];
}

#pragma mark 根据文件名称获取documents的文件名的全路径
+ (NSString *)getFullDocumentPathWithName:(NSString *)aFileName
{
    return [[self getDocumentPath] stringByAppendingString:aFileName];
}

#pragma mark 根据文件名称获取tmp的文件名的全路径
+ (NSString *)getFullTmpPathWithName:(NSString *)aFileName
{
    return [[self getTmpPath] stringByAppendingPathComponent:aFileName];
}

#pragma mark 根据文件名称获取Caches的文件名的全路径
+ (NSString *)getFullCachesPathWithName:(NSString *)aFileName
{
    return [[self getCachesPath] stringByAppendingPathComponent:aFileName];
}

+ (NSString *)getHomePath
{
    NSString *home = [@"~" stringByExpandingTildeInPath];
    return home;
}

#pragma mark 获取documents的全路径
+ (NSString *)getDocumentPath
{
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *result = [path objectAtIndex:0];
    return result;
}

#pragma mark 获取tmp路径
+ (NSString *)getTmpPath
{
    NSString *pathName = [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];
    return pathName;
}

#pragma mark 获取caches路径
+ (NSString *)getCachesPath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
    return [paths objectAtIndex:0];
}
#pragma mark 遍历文件夹下的所有文件,不含子文件
+ (NSArray *)getContentsOfDirectoryAtPath:(NSString *)aDirString
{
    return [[self getNSFileManager] contentsOfDirectoryAtPath:aDirString
                                                        error:nil];
}

#pragma mark - 获取路径下通过时间排序的文件列表
+ (NSArray *)getContentsOfDirectoryByTimeOrderAtPath:(NSString *)aDireString
{
    NSArray *files = [self getAllFilesAtPath:(NSString *)aDireString];
    
    NSMutableArray *iUrls = [[NSMutableArray alloc] initWithCapacity:1];
    NSArray *sortedFiles = nil;
    
    if([files count] > 0)
    {
        sortedFiles = [files sortedArrayUsingComparator:^(NSString *url1, NSString *url2)
                       {
                           
                           NSDictionary *fileAttributes1 = [[self getNSFileManager] attributesOfItemAtPath:url1
                                                                                                     error:nil];
                           
                           NSDictionary *fileAttributes2 = [[self getNSFileManager] attributesOfItemAtPath:url2
                                                                                                     error:nil];
                           NSDate *date1 = [fileAttributes1 objectForKey:NSFileCreationDate] ;
                           
                           NSDate *date2 = [fileAttributes2 objectForKey:NSFileCreationDate] ;
                           return [date2 compare:date1];
                       }];
    }
    
    for (int i = 0; i < [sortedFiles count]; i++)
    {
        NSURL *url = [NSURL fileURLWithPath:[sortedFiles objectAtIndex:i]];
        [iUrls addObject:url];
    }
    
    return iUrls;
    
}

#pragma mark - 遍历文件夹下的所有文件,包含子文件
+ (NSArray *)getAllFilesAtPath:(NSString *)aDirString
{
    NSMutableArray *tempPathArray = [NSMutableArray array];
    NSArray *tempArray =[self getContentsOfDirectoryAtPath:aDirString];
    NSString *fullPath = nil;
    
    for (NSString *fileNmae in tempArray) {
        BOOL flag = YES;
        fullPath = [aDirString stringByAppendingPathComponent:fileNmae];
        //判断是否存在
        if ([[self getNSFileManager] fileExistsAtPath:fullPath isDirectory:&flag]) {
            //不是目录,直接添加
            if (![[fileNmae substringToIndex:1]isEqualToString:@"."]) {
                [tempPathArray addObject:fullPath];
            }
            //如果是目录,一当前文件夹为key,文件夹下的子文件名为value,递归调用
            else{
                NSArray *subPathArray =[self getAllFilesAtPath:fullPath];
                [tempPathArray addObjectsFromArray:subPathArray];
                
            }
        }
        fullPath = nil;
    }
    NSArray *resultArray = [NSArray arrayWithArray:tempPathArray];
    return resultArray;
    
}


#pragma mark 复制一个目录下的文件到另外一个目录,前后两个必须一致,要么都是目录,要么都是文件
+ (BOOL) copyItemAtPath:(NSString *)aPath
                 toPath:(NSString *)aDestinationPath
                  error:(NSError **)aError
{
    NSFileManager *tempFileManager = [self getNSFileManager];
    return [tempFileManager copyItemAtPath:aPath
                                    toPath:aDestinationPath
                                     error:aError];
}

#pragma mark 重命名文件
+ (BOOL)renameFileNameFrom:(NSString *)aOldName
                    toPath:(NSString *)aNewName
                     error:(NSError **)aError{
    NSFileManager *tempFileManager = [self getNSFileManager];
    BOOL result =  [tempFileManager moveItemAtPath:aOldName
                                            toPath:aNewName
                                             error:aError];
    return result;
}


@end

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【IOS】史上最全文件操作NSFileManager 的相关文章

  • 数据结构—习题2.6 通过一趟遍历找出单链表中的最大值

    1 题目描述 设计一个算法 xff0c 通过一趟遍历在单链表中确定值最大的结点 2 题目分析 假定第一个结点中数据具有最大值 xff0c 依次与下一个元素比较 xff0c 若其小于下一个元素 xff0c 则设其下一个元素为最大值 xff0c
  • 【MySQL 11】怎么解决MySQL 8.0.18 大小写敏感问题

    1 查看状态 通过 show variables 命令查看当前 mysql 是否是区分大小写 xff0c 如下 xff1a mysql大小写敏感配置相关的两个参数 xff0c lower case file system 和 lower c
  • Ubuntu配置阿里云ddns

    首发于yuany3721的WordPress 生成阿里云access key 注意 xff1a 不能使用ram子用户 下载并配置ddns curl https github com NewFuture DDNS releases downl
  • LibreOJ - 10015 扩散

    题目描述 一个点每过一个单位时间就会向 4 个方向扩散一个距离 xff0c 如图所示 xff1a 两个点 a b 连通 xff0c 记作 e a b xff0c 当且仅当 a b 的扩散区域有公共部分 连通块的定义是块内的任意两个点 u v
  • Python 生成器 (通俗讲解)

    一 生成器的本质 生成器是含有yield语句 xff08 或yield表达式 xff09 的函数所返回的对象 也就是说 xff0c 要创建一个生成器 xff0c 我们首先要定义一个函数 xff0c 该函数内将使用yield表达式或yield
  • (三)MNN与Opencl联合编译

    在MNN与opencl进行联合编译中 xff0c 需要注意一些事项 xff1a 1 在MNN中cmakelists进行修改后 2 在source backend opencl core runtime中OpenCLWarpper cpp中文
  • Linux文件系统操作命令

    一 目录类命令 ls 查看文件或目录的工具 xff0c 列出目录 用法 xff1a ls 选项 文件 选项 l 以长格式显示目录下的内容列表 输出的信息从左到右依次包括文件名 xff0c 文件类型 权限模式 硬连接数 所有者 组 文件大小和
  • Windows 11安装安卓子系统步骤

    1 win11开启虚拟平台 如下图 xff0c 进入设置界面 xff0c 应用 可选功能 更多 Windows 功能 勾选 Hyper V 和 虚拟机平台 xff0c 重启系统 2 下载安装子系统 打开地址 xff1a https stor
  • linux系统使用docker部署gitlab

    1 安装docker docker安装见我之前的文章 xff1a http t csdn cn H4wAm 2 拉取gitlab镜像 gitlab ce社区版最新版 docker pull gitlab gitlab ce latest g
  • ubuntu 18.10安装ssh软件

    ubuntu 18 10 ssh软件安装步骤 xff1a 输入 Ctrl 43 Alt 43 T 打开命令终端 xff1b 输入 sudo apt get update 更新源列表 xff1b 在输入命令后 xff0c 显示的是输入密码操作
  • Clion(2023)+QT(6.5)+cmake+vcpkg+Opencv(4.7)环境安装与使用

    用习惯了Clion xff0c 智能提示很棒 xff0c 就不想用Qt自带的creator编辑器 xff0c 并且新版的Clion支持编辑ui文件 于是搜罗了一下教程搭配一下环境安装 xff0c 其实最重要的还是cmakelist的编写 Q
  • QPushButton样式设置

    1 无样式的按钮 2 改变字体颜色 color span class token operator span ff0000 span class token punctuation span 3 改变字体 font span class t
  • linux进程间通信--共享内存(POSIX 版本)

    linux进程间通信 共享内存 POSIX 版本 System V共享内存模型使用的是key和标识符 xff0c 这与标准的UNIX I O模型使用文件名和描述符的做法不一致 这种差异导致System V共享内存段需要一整套全新的系统调用和
  • 软件工程 瀑布模型、原型模型、喷泉模型和V模型的优缺点及适用场景

    一 瀑布模型 瀑布模型 xff08 Waterfall Model xff09 是一个项目开发架构 xff0c 开发过程是通过设计一系列阶段顺序展开的 xff0c 从系统需求分析开始直到产品发布和维护 xff0c 每个阶段都会产生循环反馈
  • Ubuntu18.04 配置 Xrdp 远程桌面服务

    Ubuntu18 04 配置 Xrdp 远程桌面服务 Ubuntu18 04 配置 Xrdp 远程桌面服务安装桌面环境安装 Xrdp配置 Xrdp防火墙配置 1 连接远程桌面问题解决 2 参考链接 Ubuntu18 04 配置 Xrdp 远
  • linux系统中同时开启wifi与热点的办法

    如果你在linux操作系统中有同时开启wifi与热点的需求 xff0c 请按下面的办法操作 目前开启热点后会自动关闭wifi 同时开启wifi与热点的办法 1 准备工作 查看是否支持AP模式 iw list 找到这个 xff0c 表示支持A
  • Couldn't find executable named joy_node below /opt/ros/kinetic/share/joy解决方法

    最近想用joy node这个节点 xff0c 然后就通过 sudo apt get install ros kinetic joy 去安装 xff0c 然后运行rosrun joy joy node时候一直错误显示Segmentation
  • Android P中的AVB2.0校验

    avb校验功能主要是由external avb libavb库实现的 xff0c 该库主要完成的工作包括各个分区镜像的校验 xff0c 签名验证 xff0c 以及vbmeta数据的解析 xff0c 包括了各种flags的处理以及dm ver
  • linux:nohup命令用法

    启动示例 nohup java jar infos 1 0 0 jar gt dev null 2 gt amp 1 amp 这句命令的含义是 xff1a 使用nohup来启动 xff0c 并将日志输入到黑洞目录以实现不记录nohup ou
  • cas进行sso单点登录,解决重定向url中带 ;jsessionid=xxx,url路径不合法的问题

    cas进行sso单点登录时 解决重定向url中带 jsessionid 61 xxx url路径不合法的问题 Servlet3 0规范中的允许你定义JSESSIONID是存储在cookie中还是URL参数中 如果会话ID存储在URL中 xf

随机推荐

  • 将Sublime Text 3 打造成 C/C++编译器

    本文介绍Sublime Text 3的C C 43 43 开发环境搭建 xff0c 包括MinGW的安装 xff0c gcc运行c语言 xff0c g 43 43 运行c 43 43 语言 xff0c 在sublime中运行以及在cmd中运
  • 201809-3 元素选择器(100分)

    1 首先标签选择器和id选择器是很简单的 xff0c 只需要注意标签大小写不敏感 xff0c id大小写敏感就可以拿到50分了 2 难的是后代选择器 xff0c 按照题目给的思路 xff0c 先找到所有满足最后一个选择器的元素列表 xff0
  • CMFCShellTreeCtrl在win7下打开家庭组断言BUG

    如图中所示 打开家庭组的时候会出现断言错误 解决方法 重新添加一个类 继承CMFCShellTreeCtrl 然后重写 HRESULT CMyShellTree EnumObjects HTREEITEM hParentItem LPSHE
  • 5款OCR文字识别软件推荐_分享好用的OCR(图片转文字)工具

    5款OCR文字识别软件推荐 不知道大家是不是不知道OCR单词识别这个词 小编认为 xff0c 经常处理各种办公文件的朋友 xff0c 对OCR文字识别这个词肯定有一定的了解 xff0c 因为在处理办公文件的时候 xff0c 很有可能会遇到对
  • Python菜鸟教程(一)-爬b站数据

    BeautifulSoup BeautifulSoup 我们爬去网站主要用到的库 安装BeautifulSoup pip span class hljs keyword install span beautifulsoup4 安装了pyth
  • webdriver.Chrome()提示'chromedriver' executable needs to be in PATH.

    webdriver Chrome 提示 chromedriver executable needs to be in PATH 解决办法 xff1a 1 下载和你当前的chrome对应版本的chromedriver chrome和Chrom
  • 安装 WSL2 Ubuntu20.04 报 0xc03a001a

    错误 xff1a WslRegisterDistribution failed with error 0xc03a001a 解决方案 xff1a 找到 C Users 你的用户名 AppData Local Packages找到 Canon
  • debian/ubuntu arm/arm64 国内源

    最近搞linux系统整理了一些源 xff0c 希望对大家有用 ubuntu14 04 armhf deb http mirrors ustc edu cn ubuntu ports trusty main multiverse restri
  • ftp命令行访问

    许多时候 xff0c 出于条件的限制 xff0c 我们无法使用 FTP 软件上下载文件 比如 xff0c 在某些对安全性或隐私有要求的主机上就不允许安装此类软件 此时 xff0c 要想实现文件的上传下载 xff0c 我们就只好使用系统自带的
  • 问题记录:Start : 由于出现以下错误,无法运行此命令: 系统找不到指定的文件。。

    执行 xff1a openssl req x509 nodes days span class token number 365 span newkey rsa 2048 keyout mykey key out mycert pem ju
  • 树莓派系统的安装【超详细、超简单】

    如何安装树莓派的系统 以及 树莓派新系统SSH连接被拒绝的解决方法 1 下载树莓派系统 下载地址 xff1a https www raspberrypi org software operating systems 选择合适的下载即可 2
  • Win10系统双击无法打开图片的解决方法

    一位用户将电脑系统升级到Windows10正式版后 xff0c 发现计算机中的图片双击打不开了 xff0c 这是怎么回事呢 xff1f 其实 xff0c 该问题是由于win10系统默认情况下将 照片查看器 屏蔽所导致的 接下来 xff0c
  • 入栈出栈顺序

    转自 xff1a https blog csdn net qq 1932568757 article details 82752325 问题 xff1a 已知入栈顺序 xff0c 找出不可能得出栈顺序 已知一个栈得入栈顺序为ABCDEF x
  • 远程连接一闪而过或登录后无法正常操作的解决方法

    今天我远程登录到服务器上 xff08 win2003 xff09 修改网站某目录的属性 xff0c 由于该目录下的文件达好几万个 xff0c 所以我操作完后就等待完成 xff0c 把远程窗口最小化后 xff0c 继续在本地电脑做其他的事情
  • Copilot使用教程

    官网及申请地址 xff1a https copilot github com 教程包含如下内容 xff1a copilot简单介绍使用python对copilot做些简单使用测试使用copilot对LeetCode 题目解答 一 copil
  • Python打包与解压zip

    打包 shutil模块 shutil make archive base name format root dir base dir verbose dry run owner group logger 参数说明 xff1a base na
  • powershell批量修改文件名称。

    下面的代码能够给桌面 都彭 文件夹下的所有目录文件名称增加都 都彭 两个字 Get ChildItem Path F Desktop 都彭 获取这个目录下的所有文件 增加recurse参数后能够对这个目录进行递归获包含子目录的所有文件名 利
  • ThinkPad相机打开灰色加斜杠问题解决!!!

    问题是这样的 xff01 xff01 xff01 很久前是这样的 xff0c 一直弄不好 xff0c 删了驱动 xff0c 重装驱动 xff0c 注册表弄了 xff0c 反正是各种弄 xff0c 各种帖子找了还是不行 xff01 xff01
  • SSL error when connecting to the Jack server. Try ‘jack-diagnose‘

    Android7 编译出现jack admin启动问题 xff1a log如下 xff1a Launching Jack server java XX MaxJavaStackTraceDepth 61 1 Djava io tmpdir
  • 【IOS】史上最全文件操作NSFileManager

    功能列表 判断文件是否存在 43 BOOL fileExistsAtPath NSString aPath 判断文件是否存在Documents下 43 BOOL fileExistsAtDocumentsWithFileName NSStr