小弟在一个项目中出现如下问题,请各位大哥帮忙解决,小弟感激不尽!
问题如下:
这个项目中我通过OpenFileDialog控件来获取用户选择的文件路径比方说:C:\aa\a.txt(当然在程序中所获取该路径是进行了适当的转义C:\\aa\\a.txt),然后在这个项目中我们会应用到上述的路径信息进行一些常规的操作。 当程序完成一系列操作后要将该文件路径输出到一个文件中,以方便其他C程序的调用,可是现在问题就出现了!因为上述路径输出到文件中的形式为C:\aa\a.txt是经过转义的路径信息,而我所需要的是在文件中输出C:\\aa\\a.txt,这样输出的目的是因为C程序中能正确的识别这个路径文件,请问大家除的在输出时进行正则替换或字符串替换(即将路径中的\替换成\\)外,还有没有其它什么方便快捷的方法,即不影响前面C#程序中正常调用路径,又能在输出时将路径以附带转义字符的形式输出即(C:\\aa\\a.txt)!
问题如下:
这个项目中我通过OpenFileDialog控件来获取用户选择的文件路径比方说:C:\aa\a.txt(当然在程序中所获取该路径是进行了适当的转义C:\\aa\\a.txt),然后在这个项目中我们会应用到上述的路径信息进行一些常规的操作。 当程序完成一系列操作后要将该文件路径输出到一个文件中,以方便其他C程序的调用,可是现在问题就出现了!因为上述路径输出到文件中的形式为C:\aa\a.txt是经过转义的路径信息,而我所需要的是在文件中输出C:\\aa\\a.txt,这样输出的目的是因为C程序中能正确的识别这个路径文件,请问大家除的在输出时进行正则替换或字符串替换(即将路径中的\替换成\\)外,还有没有其它什么方便快捷的方法,即不影响前面C#程序中正常调用路径,又能在输出时将路径以附带转义字符的形式输出即(C:\\aa\\a.txt)!
你没有理解到转义字符的含义
程序中的C:\\aa\\a.txt本来就表达的是c:\a\a.txt这个路径
而如果文本文件中记录的就是C:\\aa\\a.txt,读到程序中就成了c:\\\\aa\\\\a.txt
C/C#都是一样的,根本不存在任何问题。
你不需要做什么工作,本来就没有问题,不要杞人忧天。
问题是OpenFileDialog获得的路径信息是C:\aa\a.txt,当然我们在程序中进行一下常规替换也可以,但是程序一样也提供了用户直接输入路径的功能,如果用(/)的话觉的和OpenFileDialog获取的路径有点不统一,这样程序操作起来可能要进行一些多余的判断!不知道还有没有什么好的方法!
你自己搞清楚
如果我们在文件中写入C:\aa\a.txt,C语言中读取出来就是C:\aa\a.txt再进行一下fopen操作
就这样,无需转换,不会出现任何问题。
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
FILE *fp;
char strbuf[1024]; fp = fopen("E:\\a\\a.txt","r");//可以打开文件并且可以读出数据 // fp = fopen("E:\a\a.txt","r"); 不可以打开文件并且可以读出数据
// fp = fopen("E:/a/a.txt","r"); 可以打开文件并且可以读出数据 fgets(strbuf,1024,fp); fclose(fp) return 0;
}
不好意思,帖子提交的急,上述代码有点问题,下面注释应该才是对的。 #include "stdafx.h"
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
FILE *fp;
char strbuf[1024];fp = fopen("E:\\a\\a.txt","r");//可以打开文件并且可以读出数据 // fp = fopen("E:\a\a.txt","r"); 不可以打开文件并且不可以读出数据
// fp = fopen("E:/a/a.txt","r"); 可以打开文件并且可以读出数据fgets(strbuf,1024,fp); fclose(fp)return 0;
}