gpt4 book ai didi

c++ - TCHAR* 到 char*

转载 作者:行者123 更新时间:2023-11-28 02:59:11 25 4
gpt4 key购买 nike

错误:“TCHAR *”类型的参数与“const char *”类型的参数不兼容
行中的错误:if(remove( f ) != 0 )

我想将“TCHAR f[MAX_PATH]”转换为 const char * 并传递给“Remove”函数:

int _tmain(int argc, TCHAR *argv[])
{
WIN32_FIND_DATA ffd;
LARGE_INTEGER filesize;
TCHAR szDir[MAX_PATH];
size_t length_of_arg;
HANDLE hFind = INVALID_HANDLE_VALUE;
DWORD dwError=0;
TCHAR s[MAX_PATH];
TCHAR f[MAX_PATH];

// If the directory is not specified as a command-line argument,
// print usage.

if(argc != 2)
{
_tprintf(TEXT("\nUsage: %s <directory name>\n"), argv[0]);
goto l;
}

// Check that the input path plus 2 is not longer than MAX_PATH.

StringCchLength(argv[1], MAX_PATH, &length_of_arg);

if (length_of_arg > (MAX_PATH - 2))
{
_tprintf(TEXT("\nDirectory path is too long.\n"));
goto l;
}

_tprintf(TEXT("\nTarget directory is %s\n\n"), argv[1]);

// Prepare string for use with FindFile functions. First, copy the
// string to a buffer, then append '\*' to the directory name.

StringCchCopy(szDir, MAX_PATH, argv[1]);
StringCchCopy(s, MAX_PATH, szDir);
StringCchCat(szDir, MAX_PATH, TEXT("\\*"));

// Find the first file in the directory.

hFind = FindFirstFile(szDir, &ffd);

if (INVALID_HANDLE_VALUE == hFind)
{
ErrorHandler(TEXT("FindFirstFile"));
return dwError;
}

// List all the files in the directory with some info about them.
StringCchCat(s, MAX_PATH, TEXT("/"));

do
{
if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
_tprintf(TEXT(" %s <DIR>\n"), ffd.cFileName);


}
else
{
StringCchCopy(f, MAX_PATH, s);
StringCchCat(f, MAX_PATH, ffd.cFileName);

filesize.LowPart = ffd.nFileSizeLow;
filesize.HighPart = ffd.nFileSizeHigh;
_tprintf(TEXT(" %s %ld bytes\n"), ffd.cFileName, filesize.QuadPart);
_tprintf(f);

if(remove( f ) != 0 )
perror( "Error deleting file" );
else
puts( "File successfully deleted" );

}
}
while (FindNextFile(hFind, &ffd) != 0);

dwError = GetLastError();
if (dwError != ERROR_NO_MORE_FILES)
{
ErrorHandler(TEXT("FindFirstFile"));
}

FindClose(hFind);
return dwError;

l:
getch();
}

最佳答案

使用 _tremove 而不是删除。它适用于 const TCHAR*。

关于c++ - TCHAR* 到 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21283495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com