获取文件当前目录


1. GetCurrentDirectory

此函数是微软Windows 提供的。

头文件为WinBase.h

#ifdef UNICODE
#define GetCurrentDirectory  GetCurrentDirectoryW
#else
#define GetCurrentDirectory  GetCurrentDirectoryA
#endif // !UNICODE


简单来段代码

#include <windows.h>
std::wstring GetCurrentDirws()
{
	wchar_t buf[1000];
	GetCurrentDirectory(1000, buf);
	wstring strPath = buf;
	return strPath;
}

2._getcwd
此函数头文件为
 
#include <direct.h>
简单代码:

std::string GetCurrentDirs()
{
	char* buffer;
	string m_sRe;
	if( (buffer = _getcwd( NULL, 0 )) == NULL )
	{
		perror( "_getcwd error" );
	}
	else{
		m_sRe = buffer;
		free(buffer);
	}
	return m_sRe;
}


两个结果一致。
有篇博客说用微软的函数路径中间不能加  “.”,测试了一下,我的电脑上的可以的。表示奇怪。
来个真相:


msdn帮助文档自己可以找,有事例代码的。贴过来,需要的可以看看头的注释部分。


// crt_getcwd.c
// This program places the name of the current directory in the 
// buffer array, then displays the name of the current directory 
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.
 
#include <direct.h>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char* buffer;

   // Get the current working directory: 
   if( (buffer = _getcwd( NULL, 0 )) == NULL )
      perror( "_getcwd error" );
   else
   {
      printf( "%s \nLength: %d\n", buffer, strnlen(buffer) );
      free(buffer);
   }
}



不足之处,多多指教!










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值