关于xamarin.forms Android创建文件与写文件 (ftp)

现在读写文件在Android原生态应该不在话下了。但是xamarin.forms应该如何用呢

1 //获取文件的名称含有后缀
2 string strName = Path.GetFileName(strPath);
3 strPath = "ftp://" + builder.UserName + ":" + builder.Password + "@" + builder.Host  + strPath;
4 builder.AllPath = strPath;
5 //global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath :得到安卓的根目录
6 //Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)::得到安卓data目录
7 var path = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
8 //创建文件
9 System.IO.Directory.CreateDirectory(path);

可是我运行半天在手机上都没有找到我文件。原来是没有权限。如何加权限呢!如下图在安卓项目里有个Properties的文件下有个AndroidManifest.xml的文件。在<application android:label="cardionNet2.Android"></application> 下加

1 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

这两句就好。

之后如何用ftp下载文件呢。

 1  FtpWebRequest reqFTP = null;//Ftp请求
 2             FileStream saveStream = null;//Ftp文件流
 3             Stream ftpStream = null;//Ftp传输流
 4             FtpWebResponse response = null;//Ftp响应
 5             try
 6             {
 7                 var sss = new Uri(builder.Path);
 8
 9                 //创建要保存的文件
10                 saveStream = new FileStream(savePath, FileMode.Create);
11                 //下载文件设置
12                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(builder.AllPath));
13                 reqFTP.Credentials = new NetworkCredential(builder.UserName, builder.Password);
14                 reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
15                 reqFTP.UseBinary = true;
16                 //开始请求
17                 response = (FtpWebResponse)reqFTP.GetResponse();
18                 //开始下载
19                 ftpStream = response.GetResponseStream();
20                 //将下载内容存入文件流
21                 int bufferSize = 65535;
22                 int readCount;
23                 byte[] buffer = new byte[bufferSize];
24                 readCount = ftpStream.Read(buffer, 0, bufferSize);
25                 while (readCount > 0)
26                 {
27                     saveStream.Write(buffer, 0, readCount);
28                     readCount = ftpStream.Read(buffer, 0, bufferSize);
29                 }
30  }
31             catch (WebException webEx)
32             {
33                 throw webEx;
34             }
35             catch (Exception ex)
36             {
37                 throw ex;
38             }
39             finally
40             {
41                 //释放资源
42                 if (ftpStream != null) ftpStream.Close();
43                 if (saveStream != null) saveStream.Close();
44                 if (response != null) response.Close();
45             }

趋势xamarin的ftp下载文件和c#是一样的关键在于如何在手机上建立文件。

时间: 2024-08-02 23:01:44

关于xamarin.forms Android创建文件与写文件 (ftp)的相关文章

Xamarin.Forms探索--使用 Xamarin.Forms 来创建跨平台的用户界面

Xamarin.Forms 是一个跨平台的.基于原生控件的UI工具包,开发人员可以轻松的创建适用于 Android,iOS 以及 Windows Phone的用户界面.与HTML 5 不同的时,Xamarin.Forms 通过使用平台的原生控件来渲染用户界面,使用 Xamarin.Forms 的 App在外观上与平台完全一致.Xamarin.Forms最大的特点是:一次编写,各处使用,原生展现,这也是最吸引我的地方,下图就是一个简单的示例: 接下来我们有一系列的文章来介绍如何使用 Xamarin

Xamarin.Forms Android PopupMenu问题二

Xamarin.Forms Android PopupMenu问题二 在上一篇文章Xamarin.Android 使用PopupMenu遇到的问题文章中讲到了兼容Android 5.0及以下版本,但又带了一个新的问题.这个问题在所有Android版本App都会遇到,此时会抛出一个异常: Java.Lang.RuntimeException: Failed to resolve attribute at index 6 经过多番尝试(在Xamarin.Android中调试,原生Android中调试

Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面

Xamarin.Forms 是一个跨平台的.基于原生控件的UI工具包,开发人员可以轻松的创建适用于 Android,iOS 以及 Windows Phone的用户界面.Xamarin.Forms 通过使用平台的原生控件来渲染用户界面,使用 Xamarin.Forms 的 App在外观上与平台完全一致.通过本文您可以快速了解如何使用 Xamarin.Form 来进行应用程序的开发. 简介 Xamarin.Forms可以帮助开发人员快速的构建跨平台的UI,通过一次编码,生成多平台界面.如果你做的工作

Xamarin.Forms学习之Platform-specific API和文件操作

这篇文章的分享原由是由于上篇关于Properties的保存不了,调用SavePropertiesAsync()方法也不行,所以我希望通过操作文件的方式保存我的需要的数据,然后我看了一下电子书中的第二十章和需要相关知识的第九章,这篇文章中的内容则是我学习这两章的一点记录和分享,还是那样,有错请留言指正,谢谢! 不同的平台存在着一些特定的API,通过在电子书中两章的学习,实践一下如何调用这些API和将这些API封装成公共的库,供以后的项目调用.以一个显示平台信息的小实例开始做一个简单的演示,其运行效

Xamarin.Forms (Android制作启动画面)

http://blog.csdn.net/zapzqc/article/details/38496117 Xamarin.Forms 在启动的时候相当慢,必须添加一个启动界面,步骤如下: 1.将启动画面的图片命名为:splash_screen.png,并拷贝到 Resources 文件夹下的相应 Drawable 文件夹中: 2.在其中的 Drawable 文件夹下创建 splashscreen.xml ,内容为: [html] view plain copy <?xml version="

java创建文本、文件、读文件、写文件

1 package Head18; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileNotFoundException; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.IOException; 9 10 public class Mkdirs_FileRW { 11 public st

Python按行读取文件、写文件

Python按行读取文件 学习了:https://www.cnblogs.com/scse11061160/p/5605190.html file = open("sample.txt") for line in file: pass # do something file.close() 学习了:https://blog.csdn.net/ysdaniel/article/details/7970883 去除换行符 for line in file.readlines(): line

JAVA读文件和写文件的的代码模版

有的时候经常为真么读写文件最合理发愁,因为JAVA提过读写文件的方式太多了(C更甚至,fopen & open又有多少人傻傻分不去,更别说ReadFile了). 这里个人绝对比较好的写法,仅供参考. ********************************************************************************************************************** 读取文件: *************************

从零開始学Xamarin.Forms(二) 环境搭建、创建项目

一.环境搭建 Windows下环境搭建: 1.下载并安装jdk.Android SDK和NDK.当然还须要 VS2013 update 2(VS2010.VS2012均可)以上. a.  最新SDK. 下载地址:http://dl.google.com/android/android-sdk_r23-windows.zip b.  Android平台工具包(解压到SDK安装根文件夹下,产生文件夹platform-tools), 下载地址:https://dl-ssl.google.com/and