0

我查看了 IFileOperation 的 MSDN 示例,它们展示了如何创建文件,但我不想创建空白文件,我想在其中添加一些文本。这是我从样本中得到的:

IFileOperation *pfo;
HRESULT hr = CreateAndInitializeFileOperation(IID_PPV_ARGS(&pfo));
if (SUCCEEDED(hr))
{
    hr = pfo->NewItem(psiFolder, FILE_ATTRIBUTE_NORMAL, c_szFileName, NULL, NULL);
    if (SUCCEEDED(hr))
    {
        hr = pfo->PerformOperations();
    }
    pfo->Release();
}

在 pfo->NewItem 调用中,第四个参数用于模板,但我不想定义模板。我想创建一个 .Url 文件,其内容为:

[InternetShortcut]
URL=www.google.com

我什至无法控制文件的格式,更不用说内容了。请帮忙!

4

1 回答 1

2

IFileOperation::NewItem允许您访问“ShellNew”菜单的功能(如果您在文件夹中单击鼠标右键,然后从上下文菜单中选择“新建” ,您将获得该菜单)。它旨在让您创建文件夹或空文件,或从预先存在的模板创建新文件。它不允许您制作包含任意数据的文件。

创建新的空文件后,您可以使用打开它CreateFile()并使用WriteFile(). 但请注意,它CreateFile()也可以为您创建文件——实际上没有必要IFileOperation简单地使用来创建一个空文件(除非您需要它对 UAC 的支持才能在受保护的位置创建文件,但在这种情况下您会遇到麻烦之后写信给它)。

于 2013-10-16T23:37:55.463 回答