| 
					阅读:4977回复:20
				 用Directory的问题
					在这段程序中void CFileOperate::DirectoryCreate(CString DirectoryTo)
 { CString dirFrom = DirectoryTo; //文件夹路径和文件目录名 if (!Directory.Exists(dirFrom)) { Directory.CreateDirectory(dirFrom); } else { MessageBox(NULL,\"文件夹已经存在!!\",NULL,MB_OK); } }编译出现错误undeclared identifier,可是我已经#include <shlwapi.h>了啊. Directory应该怎样使用才是正确的 | |
| 沙发#发布于:2005-05-12 10:11 
					你要装VS2003或新的Platform SDK.				 | |
| 
 | 
| 板凳#发布于:2005-05-12 10:38 
					那有没有别的办法,
 或者别的创建文件夹的办法 | |
| 地板#发布于:2005-05-12 10:57 
					你先把错误信息全贴出来!!!				 | |
| 
 | 
| 地下室#发布于:2005-05-12 11:41 
					G:\\pro\\project\\usb\\fileOperate.cpp(128) : error C2065: \'Directory\' : undeclared identifier
 G:\\pro\\project\\usb\\fileOperate.cpp(128) : error C2146: syntax error : missing \';\' before identifier \'dir\' G:\\pro\\project\\usb\\fileOperate.cpp(128) : error C2065: \'dir\' : undeclared identifier G:\\pro\\project\\usb\\fileOperate.cpp(129) : error C2228: left of \'.Exists\' must have class/struct/union type G:\\pro\\project\\usb\\fileOperate.cpp(131) : error C2228: left of \'.CreateDirectoryA\' must have class/struct/union type G:\\pro\\project\\usb\\fileOperate.cpp(143) : warning C4800: \'int\' : forcing value to bool \'true\' or \'false\' (performance warning) G:\\pro\\project\\usb\\fileOperate.cpp(149) : error C2059: syntax error : \';\' G:\\pro\\project\\usb\\fileOperate.cpp(153) : error C2059: syntax error : \';\' Error executing cl.exe. | |
| 5楼#发布于:2005-05-12 12:05 
					这就对了,信息全贴出来,一目了然。
 你压根儿没有声明Directory、dirFrom(dir???)就使用,当然有错误。 | |
| 
 | 
| 6楼#发布于:2005-05-12 12:53 
					不太明白
 详细一点可以吗 | |
| 7楼#发布于:2005-05-12 13:08 
					你要找一本C语言书,翻翻第一章了!呵呵。
 你要使用Directory这个变量,必须在前面先声明,例如 CDirectory Directory; 用陈佩斯的话说:“你总得先让我亮个相吧!” | |
| 
 | 
| 8楼#发布于:2005-05-12 14:18 
					#using <mscorlib.dll>
 using namespace System; using namespace System::IO; void CFileOperate::DirectoryCreate(CString DirectoryTo) { CString dirFrom = DirectoryTo; //文件夹路径和文件目录名 if (!Directory.Exists(dirFrom)) { Directory.CreateDirectory(dirFrom); } else { MessageBox(NULL,\"文件夹已经存在!!\",NULL,MB_OK); } } 这是照着MSDN上的原程序写的,可是为什么会出现fatal error C1021: invalid preprocessor command \'using\'的错误 | |
| 9楼#发布于:2005-05-12 15:13 
					#using是.net里C++扩展的语法,你的VC6不认识。				 | |
| 
 | 
| 10楼#发布于:2005-05-12 15:46 
					那还有什么办法				 | |
| 11楼#发布于:2005-05-12 15:57 
					当然有办法,你把代码给我,我还你个EXE。				 | |
| 
 | 
| 12楼#发布于:2005-05-12 16:01 
					#define PATH_IS_DIRECTORY
 #define PATH_IS_FILE typedef struct FD_SINGNAL { DWORD attri; bool flags; }FD_SINGNAL,*PFD_SINGNAL; class CFileOperate { public: CFileOperate(); void DirectoryCreate(CString DirectoryTo); FD_SINGNAL checkFd(LPCTSTR pathname); } CFileOperate::CFileOperate() { } void CFileOperate::DirectoryCreate(CString DirectoryTo) { CString dirFrom = DirectoryTo; //文件夹路径和文件目录名 Diirectory dir; if (!dir.Exists(dirFrom)) { Directory.CreateDirectory(dirFrom); } else { MessageBox(NULL,\"文件夹已经存在!!\",NULL,MB_OK); } } //判断路径是否存在并且是否是目录 FD_SINGNAL CFileOperate::checkFd(LPCTSTR pathname) { struct FD_SINGNAL Fd_signal; Fd_signal.flags=PathFileExists(pathname); if(Fd_signal.flags) { Fd_signal.attri=GetFileAttributes(pathname); if(Fd_signal.attri&FILE_ATTRIBUTE_DIRECTORY) { Fd_signal.attri=PATH_IS_DIRECTORY; } else { Fd_signal.attri=PATH_IS_FILE; } } return Fd_signal; } | |
| 13楼#发布于:2005-05-12 16:23 
					你真要EXE?
 真要EXE就给我项目。 如果不是,那么: 1:你的程序是基于.net的,机器上要有.net运行环境才能运行你的EXE。 2:你写的是.net下的C++程序,可又用了C#的语法。 3:2000\\XP\\ME下可用SHCreateDirectoryEx代替,98下可用CreateDirectory代替.net中的CreateDirectory函数。 | |
| 
 | 
| 14楼#发布于:2005-05-12 16:52 
					若要在VC6下运行要做那些修改				 | |
| 15楼#发布于:2005-05-12 17:06 
					用SHCreateDirectoryEx代替Directory类的静态函数CreateDirectory.				 | |
| 
 | 
| 16楼#发布于:2005-05-12 17:09 
					用CreateFile代替Directory类的静态函数Exists.				 | |
| 
 | 
| 17楼#发布于:2005-05-13 09:55 
					我用SHCreateDirectoryEx代替CreateDirectory
 还是不行啊 还是有错误error C2065: \'SHCreateDirectoryEx\' : undeclared identifier | |
| 18楼#发布于:2005-05-13 10:08 你要装VS2003或新的Platform SDK. 装个新Platform SDK并不费事,也有需要。 只是这个函数在98下不能用,在98下用CreateDirectory代替。 | |
| 
 | 
| 19楼#发布于:2005-05-13 10:11 
					谢谢了				 | |
上一页
下一页
 
			
			
						
			
			
						
			
		 
							
 
				