如何使用winjs更改文件权限

时间:2014-10-14 00:02:14

标签: angularjs windows-8.1 winjs

我目前正在开发一个Windows 8 winJS / AngularJS应用程序,我们想要制作一些存储在LocalState文件夹中的文件,以便将其权限更改为只读。这些文件是使用相机拍摄的图像,我们希望在保存图像后不鼓励更改图像。

任何想法都会很棒。我正在使用Windows.Storage.StorageFile.getFileFromPathAsync()来获取文件。

1 个答案:

答案 0 :(得分:2)

您可以使用StorageFile.properties.retrievePropertiesAsync和savePropertiesAsync方法执行此操作。这是一段使文件成为只读的代码,我在Win32 API中定义了只读属性:

var key = "System.FileAttributes";
var FILE_ATTRIBUTES_READONLY = 1;  //From the Win32 API

var file;  

//Assign some StorageFile to the file variable  
file.properties.retrievePropertiesAsync([key]).then(function (props) {
     if (props) {
         props[key] |= FILE_ATTRIBUTES_READONLY;
     } else {
         props = new Windows.Foundation.Collections.PropertySet();
         props.insert(key, FILE_ATTRIBUTES_READONLY);
     }  

    return file.properties.savePropertiesAsync(props);
}).done(function () {
    //Any other action
});

你可以像Rob说的那样使用WinRT组件,但是没有必要。

我在免费电子书Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition,第11章,从第592页开始,对文件属性进行了全面讨论。上面的代码直接来自第601页。