文件操作中的几个大坑
来源:互联网 发布:淘宝下载旧版本下载 编辑:程序博客网 时间:2024/06/13 04:48
在程序开发中你经常会碰到很多关于路径的问题的。比如读取文件,写文件等,加载一张图片,读取一个配制,你必要传一个文件的路径。然而你也许常常碰到这样的问题:逻辑是对的,但就出不来你想要的结果。这是为什么呢?因为对于文件操作的路径问题,有很多你稍不慎就会掉入的大坑。
说几个掉进大坑的惨痛经历
1.编译一个C++的工程,工程中要用到cmake工具,而cmake安装在C:\Program Files (x86)\cmake2.8(程序默认安装时,安装到这个目录是很正常不是吗)。然而问题来了,工程怎么编不过,报一个很诡异的异常:
Microsoft.CppCommon targets(151, 5):error MSB6006:”cmd.exe” exited with code 3.
后来我把cmake安装目录的整个文件夹拷到了C:\Program Files\cmake2.8,工程编译正常。但就因为这一个问题,半天的时间一下就没了……
2.由于工程配制的需要,要写一个脚本,脚本的功能很简单,就把一个文件从A目录拷贝(复制)到B目录。于是很自然地就写了这样一行命令:
copy /y D:\C++Workspace\ProjectA\config.txt D:\C++Workspace\ProjectB\
很简单吧,没有逻辑错误吧!但结果呢?结果这样的:
我瞅了一眼又一眼,config.txt这个文件确实是存在的,而且路径也是正确的。
然后我进行了一个尝试:
然后我直接把config.txt复制一份到D:\config.txt,再进行了一次尝试:
Ok,它成功了!
作为一个C++程序员,取一个“C++Workspace“这样文件夹作为工作目录也是可以理解的吧!但结果却是花了我半个多小时解决上面这个问题。于是我不得不把”C++Workspace“改成了”CppWorkspace“,然后写这样一行命令:
copy /y D:\CppWorkspace\ProjectA\config.txt D:\CppWorkspace\ProjectB\
Ok,一切正常!
3.还有的还有,我就不一一举例了,总之关于路径问题,坑很多……
如何跳过大坑?
那如何避免掉进大坑呢?大体总结以下几点,可依次循着这个思路逐步排查:
1. 检查写的路径是否正确;
2. 检查要操作的目录、文件是否具有权限,如读写权限(Linux系统或类Unix系统中还有执行权限);
3. 检查路径中是否包含特殊的字符,如’(‘、’)’、’<’、’>’、’ ‘、’+’、’-‘、’:’、’%’、’&’、’#’、’$’、’!’、’|’、’*’、’@’、’?’、’,’等;
4. 注意绝对路径与相对路径的问题。
当你怎么也搞不定一个问题,并且逻辑也没有错误时,就不要闷头苦干了!按照上面的思路检查一下是不是路径的问题吧。
- 文件操作中的几个大坑
- PCA真实操作中的大坑
- 关于CTeX的几个大坑
- 最近遇到的几个大坑
- 几个文件操作函数
- UAC机制中的大坑
- Android开发中的大坑
- CoordinatorLayout中的大坑
- 文件操作几个简例
- 文件操作的几个函数
- 文件操作的几个函数
- Android面向百度编程的几个大坑
- jquery media 插件中的大坑
- silverlight开发游戏中的大坑
- unsigned short中的一个大坑
- AndroidManifest文件中的几个细节
- MATLAB基本操作(七):有关文件路径的几个函数在编程中的作用
- MATLAB基本操作(七):有关文件路径的几个函数在编程中的作用
- USACO 1.2 Palindromic Squares (进制转换)
- caffe for windows 模型中 solver.prototxt 代码解读
- 使用事件驱动模型实现高效稳定的网络服务器程序
- android 4.1.2系统 phone 导入eclipse编译
- C++Primer第五版 1.6节练习
- 文件操作中的几个大坑
- 从HelloWorld启航——数据库连接字符串的困惑
- scanf从文件中读入,printf写入到文件
- 神奇的图像处理算法
- HTML 元素
- 正则表达式匹配
- UIButton
- Linux下的三款股票软件
- 函数指针的用法