以下代码无法删除文件并打印,file delete:因此我知道该文件存在.打开我的应用程序后,我可以删除文件资源管理器中的文件.
我该怎么调试呢?
1)文件权限?我的应用创建了文件,所以应该可以删除?无论它会抛出异常并点击我的catch调试消息.
2)文件存在!根据文件,除了不存在之外的任何其他失败都应该在我的捕获中抓住......
if (File.Exists(fn))
{
Debug.WriteLine("file delete: " + fn);
try
{
File.Delete(fn);
}
catch
{
Debug.WriteLine("Could not delete: " + fn);
}
} else {
Debug.WriteLine("File doesn't exist: "+fn);
}
Run Code Online (Sandbox Code Playgroud)
如果这很重要,则使用以下代码从RichTextBox保存文件.
TextRange range;
FileStream fStream;
range = new TextRange(mNotepad.Document.ContentStart, mNotepad.Document.ContentEnd);
fStream = new FileStream(fn, FileMode.Create);
range.Save(fStream, DataFormats.XamlPackage);
fStream.Close();
Run Code Online (Sandbox Code Playgroud)
删除文件不能保证文件实际上将从文件系统中删除.该文件可能已被另一个进程打开,该进程明确指定了删除共享.与读写共享非常相似.也可以在.NET中使用,您将FileShare.Delete传递给FileStream构造函数.
但是,在所有进程关闭文件之前,当然不能删除物理文件.所以它超出了File.Delete()调用,也可以通过File.Exists()看到.打开文件不再有效,拒绝访问将被拒绝.否则是永远不会使用File.Exists()的一个很好的理由,它有很多问题.
如果要查找文件打开的其他进程,则可以使用SysInternals的Handle或Process Explorer等实用程序.期待找回像病毒扫描程序或搜索索引器这样的程序,但可能是任何东西.像.NET程序:)
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |