我查看了MSDN样本的IFileOperation,它们展示了如何创建文件,但我不想创建一个空白文件,我想在其中添加一些文本。以下是我从样本中得到的内容:
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
我甚至无法控制文件的格式,更不用说内容了。请帮忙!
答案 0 :(得分:2)
IFileOperation::NewItem
可让您访问“ShellNew”菜单的功能(如果右键单击文件夹,则会获得的菜单,并从上下文菜单中选择 New )。它旨在让您创建文件夹或空文件,或从预先存在的模板创建新文件。它不允许您创建包含任意数据的文件。
创建新的空文件后,您可以使用CreateFile()
将其打开,然后使用WriteFile()
将数据写入其中。但请注意CreateFile()
也可以为您创建文件 - 实际上不需要使用IFileOperation
来创建一个空文件(除非您需要支持UAC才能在受保护的位置创建文件) ,但是在那种情况下,你之后就不会写信了。)