0

.txt に 17 個のファイルがあり、このファイルをすべて isolatedStorageDevice にインポートします。

これどうやってするの???

覚えておいてください:私はそこに既存のファイルを入れたいファイルを書きたくありません。

ファイルはプロジェクトのフォルダーにあります。例: (/Files/user.txt)

4

1 に答える 1

0

手動で

既存のWindowsPhone分離ストレージエクスプローラーツールを使用する

プログラムで

ファイルのコピーを作成する必要があります。プロジェクトの一部として、IsolatedStorageに移動する必要のあるファイルを指定するCordovaSourceDictionary.xmlがあると想定します。

<CordovaSourceDictionary>
    <FilePath Value="www\img\logo.png"/>
    <FilePath Value="www\js\index.js"/>
    <FilePath Value="www\cordova-2.1.0.js"/>
    <FilePath Value="www\css\index.css"/>
    <FilePath Value="www\index.html"/>
</CordovaSourceDictionary>

次に、以下のコードを使用してファイルをコピーできます

StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri("CordovaSourceDictionary.xml", UriKind.Relative));

if (streamInfo != null)
{
    StreamReader sr = new StreamReader(streamInfo.Stream);
    //This will Read Keys Collection for the xml file

    XDocument document = XDocument.Parse(sr.ReadToEnd());

    var files = from results in document.Descendants("FilePath")
                select new
                {
                    path = (string)results.Attribute("Value")
                };
    StreamResourceInfo fileResourceStreamInfo;

    using (IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication())
    {

        foreach (var file in files)
        {
            fileResourceStreamInfo = Application.GetResourceStream(new Uri(file.path, UriKind.Relative));

            if (fileResourceStreamInfo != null)
            {
                using (BinaryReader br = new BinaryReader(fileResourceStreamInfo.Stream))
                {
                    byte[] data = br.ReadBytes((int)fileResourceStreamInfo.Stream.Length);

                    string strBaseDir = AppRoot + file.path.Substring(0, file.path.LastIndexOf(System.IO.Path.DirectorySeparatorChar));

                    if (!appStorage.DirectoryExists(strBaseDir))
                    {
                        Debug.WriteLine("INFO: Creating Directory :: " + strBaseDir);
                        appStorage.CreateDirectory(strBaseDir);
                    }

                    // This will truncate/overwrite an existing file, or
                    using (IsolatedStorageFileStream outFile = appStorage.OpenFile(AppRoot + file.path, FileMode.Create))
                    {
                        Debug.WriteLine("INFO: Writing data for " + AppRoot + file.path + " and length = " + data.Length);
                        using (var writer = new BinaryWriter(outFile))
                        {
                            writer.Write(data);
                        }
                    }
                }
            }
            else
            {
                Debug.WriteLine("ERROR: Failed to write file :: " + file.path + " did you forget to add it to the project?");
            }
        }
    }
}
于 2012-11-28T16:10:11.567 に答える