清除Windows Mobile 6 Professional中的只读标志

本文关键字:只读 标志 Professional Windows Mobile 清除 | 更新日期: 2023-09-27 18:23:42

我正在为WM6+开发一个应用程序,并试图覆盖现有文件:

File.Copy(src, dest, true);

但我得到了这个错误:

System.UnauthorizedAccessException: UnauthorizedAccessException
at System.IO.__Error.WinIOError()
at System.IO.File.InternalCopy()
at System.IO.File.Copy()

因此,我尝试更改目标文件上的文件属性,以便能够覆盖它:

System.IO.File.SetAttributes(dest, FileAttributes.Normal);

但当我试图编译时,我得到了这个:

Error   1   'System.IO.File' does not contain a definition for 'SetAttributes'  L:'Admin'Applications_Source_Code'CommonTime_AEP_Config_Source'AEP_WM6 - Production Code'AEP_WM6'Form1.cs   133 26  AEP_WM6

为什么SetAttributes不存在?!

这是我试图覆盖的文件(不是系统文件,只是在路径相关的情况下显示):

@"'Program Files'Common Files'Trimble'GeoData'PFToolkit.csw"

这似乎已经完成了提示我这里的技巧(感谢TheGreatCO的评论):删除Compact Framework 中的只读

FileInfo fileInfo = new FileInfo(dest); 
FileAttributes attributes = fileInfo.Attributes; if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) 
{ 
    // set the attributes to nonreadonly 
    fileInfo.Attributes &= ~FileAttributes.ReadOnly; 
} 

清除Windows Mobile 6 Professional中的只读标志

使用OpenNETCF框架的这个问题的解决方案。例如

OpenNETCF.IO.FileHelper.SetAttributes("filePath is here", FileAttributes.Normal);