Windows 8 StorageFile.GetFileFromPathAsync Using U

2019-03-03 15:41发布

问题:

Has anyone EVER managed to use a windows 8 app to copy files from a unc dir to a local dir ?

According to the official documentation here

It is possible to connect to a UNC path

I am using the std FILE ACCESS sample and have changed one line of code to read as below I have added all the capabilities Added .txt as a file type The UNC path is read write to everyone and is located on the same machine..

But I keep getting Access Denied Errors.

Can anyone possibly provide me with a working example This is driving me mad and really questioning the whole point of win 8 dev for LOB apps.

TIA

private async void Initialize()
        {
            try
            {
                //sampleFile = await Windows.Storage.KnownFolders.DocumentsLibrary.GetFileAsync(filename);
                string myfile = @"\\ALL387\Temp\testfile.txt";
                sampleFile = await Windows.Storage.StorageFile.GetFileFromPathAsync(myfile);

            }
            catch (FileNotFoundException)
            {
                // sample file doesn't exist so scenario one must be run
            }

            catch (Exception e)
            {
                var fred = e.Message;

            }
        }

回答1:

I have sorted this out and the way I found best to do it was to create a folder object enumnerate over the files in the folder object copy the files one at a time to the local folder then access them

It seems that you can't open the files, but you can copy them. ( which was what I was trying to achieve in the first place )

Hope this helps

private async void Initialize()
    {
        try
        {

            var myfldr = await Windows.Storage.StorageFolder.GetFolderFromPathAsync(@"\\ALL387\Temp");
            var myfiles = await myfldr.GetFilesAsync();

            foreach (StorageFile myfile in myfiles)
            {
                StorageFile fileCopy = await myfile.CopyAsync(KnownFolders.DocumentsLibrary, myfile.Name, NameCollisionOption.ReplaceExisting);
            }

            var dsd = await Windows.Storage.KnownFolders.PicturesLibrary.GetFilesAsync();

            foreach (var file in dsd)
            {
              StorageFile  sampleFile = await Windows.Storage.StorageFile.GetFileFromPathAsync(file.Path);
            }


        }
        catch (FileNotFoundException)
        {
            // sample file doesn't exist so scenario one must be run
        }

        catch (Exception e)
        {
            var fred = e.Message;

        }
    }


回答2:

Just Go into AppXManifest and set capabilities