古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。这篇文章主要讲述关于xamarin.forms Android创建文件与写文件 (ftp)相关的知识,希望能为你提供帮助。
【关于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下载文件呢。
1FtpWebRequest reqFTP = null; //Ftp请求 2FileStream saveStream = null; //Ftp文件流 3Stream ftpStream = null; //Ftp传输流 4FtpWebResponse response = null; //Ftp响应 5try 6{ 7var sss = new Uri(builder.Path); 8 9//创建要保存的文件 10saveStream = new FileStream(savePath, FileMode.Create); 11//下载文件设置 12reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(builder.AllPath)); 13reqFTP.Credentials = new NetworkCredential(builder.UserName, builder.Password); 14reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; 15reqFTP.UseBinary = true; 16//开始请求 17response = (FtpWebResponse)reqFTP.GetResponse(); 18//开始下载 19ftpStream = response.GetResponseStream(); 20//将下载内容存入文件流 21int bufferSize = 65535; 22int readCount; 23byte[] buffer = new byte[bufferSize]; 24readCount = ftpStream.Read(buffer, 0, bufferSize); 25while (readCount > 0) 26{ 27saveStream.Write(buffer, 0, readCount); 28readCount = ftpStream.Read(buffer, 0, bufferSize); 29} 30} 31catch (WebException webEx) 32{ 33throw webEx; 34} 35catch (Exception ex) 36{ 37throw ex; 38} 39finally 40{ 41//释放资源 42if (ftpStream != null) ftpStream.Close(); 43if (saveStream != null) saveStream.Close(); 44if (response != null) response.Close(); 45}
趋势xamarin的ftp下载文件和c#是一样的关键在于如何在手机上建立文件。
推荐阅读
- AGG第二十课 agg::ellipse 方法approximation_scale()
- Java AWT面板
- Java AWT MenuItem和菜单
- Java AWT列表
- Java AWT标签
- Java AWT对话框
- Java AWT选择
- Java AWT CheckboxGroup
- Java AWT复选框