private bool ReadFiles() { // Get items in shared folder: https://www.csharpcodi.com/csharp-examples/SharpCifs.Smb.SmbFile.GetUncPath0()/ //using System; //using SharpCifs.Smb; //Get SmbFile-Object of a folder. var folder = new SmbFile("smb://" + Globals.cIP + "/"); // "smb://*****:*****@192.168.1.5/backpel/"); //UnixTime var epocDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); //List items foreach (SmbFile item in folder.ListFiles()) { var lastModDate = epocDate.AddMilliseconds(item.LastModified()) .ToLocalTime(); var name = item.GetName(); var type = item.IsDirectory() ? "dir" : "file"; var date = lastModDate.ToString("yyyy-MM-dd HH:mm:ss"); var msg = $"{name} ({type}) - LastMod: {date}"; Console.WriteLine(msg); } return(true); }
async void Shared_Folder(object sender, EventArgs e) { //Get the SmbFile specifying the file name to be created. var file = new SmbFile("smb://" + Globals.cIP + "/EGGTIM2.TXT"); // fine var file = new SmbFile("smb://*****:*****@192.168.1.5/backpel/New2FileName.txt"); try { //Create file. file.CreateNewFile(); } catch { await DisplayAlert("Υπαρχει ηδη το αρχειο", "....", "OK"); return; } //Get writable stream. var writeStream = file.GetOutputStream(); string c = "1;2;3;4;5;6;7;8;\n"; c = c + "8;8;9;9;9;9;9;9\n"; c = c + "18;18;19;19;19;19;19;19\n"; //Write bytes. writeStream.Write(Encoding.UTF8.GetBytes(c)); //Dispose writable stream. writeStream.Dispose(); }
internal DataConfiguration(SmbFile fileName, Action onExternalModification) { var path = fileName.PathCombine(ConfigurationIniFileName); IniFile = new IniFile(path, commentString: ";", onExternalModification: onExternalModification); RootUserConfigurationPath = fileName.DirectoryName; }
/// <summary> /// 上传文件 /// </summary> /// <param name="serverDir"></param> /// <param name="serverFileName"></param> /// <param name="bufBytes"></param> /// <param name="url"></param> /// <returns></returns> public static bool UpLoadFile(string serverDir, string serverFileName, byte[] bufBytes, out string url) { if (string.IsNullOrWhiteSpace(serverDir) || string.IsNullOrWhiteSpace(serverFileName) || bufBytes == null || bufBytes.Length <= 0) { throw new Exception("文件上传参数异常"); } var folder = new SmbFile($"{BaseSmbFilePath}/{serverDir}"); if (!folder.Exists()) { throw new Exception($"服务器不存在当前目录{serverDir}"); } var file = new SmbFile($"{BaseSmbFilePath}/{serverDir}/{serverFileName}"); if (file.Exists()) { throw new Exception($"服务器已存在此文件:/{serverDir}/{serverFileName}"); } file.CreateNewFile(); //Get writable stream. var writeStream = file.GetOutputStream(); //Write bytes. writeStream.Write(bufBytes); //Dispose writable stream. writeStream.Dispose(); url = String.Format(@"{0}/{1}/{2}", UrlPrefix, serverDir, serverFileName); return(true); }
private Bitmap PegarImagensServidor(RegistroDeReforma registroDeReforma, int index) { Bitmap imagem = null; indexAtual = index; try { var firstLetterClient = registroDeReforma.NomeCliente.Substring(0, 1); var fullClientName = registroDeReforma.NomeCliente.RemoveSpecialCaracters(); var apelido = registroDeReforma.NomeFantasia.RemoveSpecialCaracters(); var cityName = registroDeReforma.Cidade.RemoveSpecialCaracters(); var dateRR = DateTime.Now; var nf = registroDeReforma.NotaFiscal; var rr = registroDeReforma.DescricaoRR; var eqDesc = registroDeReforma.Equipamento.RemoveSpecialCaracters(); var smbPath = ConfigurationBase.Instance.SmbPath; var filePath = string.Format(ConfigurationBase.Instance.FilePath, firstLetterClient, fullClientName, apelido, cityName, dateRR.Year, nf, rr, eqDesc.TrimEnd()); var auth2 = new NtlmPasswordAuthentication(ConfigurationBase.Instance.NetworkDomain, ConfigurationBase.Instance.NetworkUser, ConfigurationBase.Instance.NetworkPassword); var pathConfirm = new SmbFile(string.Format("{0}/{1}", smbPath, filePath), auth2); //Create file. if (pathConfirm.Exists()) { SmbFile file = pathConfirm.ListFiles().ToList()[index]; if (file.IsFile()) { //Get readable stream. var readStream = file.GetInputStream(); //Create reading buffer. var memStream = new MemoryStream(); //Get bytes. ((Stream)readStream).CopyTo(memStream); //Dispose readable stream. readStream.Dispose(); byte[] byteImage = memStream.ToArray(); imagem = BitmapFactory.DecodeByteArray(byteImage, 0, byteImage.Length); } } else { throw new Exception("Diretório não encontrado"); } } catch (Exception ex) { Program.Main.ShowMessage(ex.Message, Android.Widget.ToastLength.Long, Base.Enums.ToastMessageType.Error); } return(imagem); }
public FileSmb(SmbFile contentSmb) : base(contentSmb ?? throw new ArgumentNullException(nameof(contentSmb))) { if (!contentSmb.IsFile()) { throw new ArgumentException("Argument is not File."); } }
private TaskStatus SendFileSmb(string file) { SharpCifs.Config.SetProperty("jcifs.smb.client.lport", "8137"); var auth = new NtlmPasswordAuthentication(_shareFolder.Domen, _shareFolder.UserName, _shareFolder.Password); var address = Path.Combine(@"smb://", _shareFolder.Address, Path.GetFileName(file)); var smb = new SmbFile(address, auth); try { if (smb.Exists()) { smb.Delete(); } smb.CreateNewFile(); using (var writeStream = smb.GetOutputStream()) { writeStream.Write(GetCopiedFile(file)); } _logger.LogInformation("Успешно"); return(TaskStatus.Completed); } catch (SmbException smbException) { FailedCopyingFiles.WithLabels("Ошибка при подключении").Set(1); _logger.LogError(smbException, "Ошибка при подключении"); return(TaskStatus.Error); } catch (Exception ex) { FailedCopyingFiles.WithLabels("Ошибка при копировании файла").Set(1); _logger.LogError(ex, "Ошибка при копировании файла"); return(TaskStatus.Error); } }
public List <String> getItens() { List <String> lstDir = new List <String>(); //"smb://*****:*****@FERNANDO-PC/OHFC/Pics/" try { var folder = new SmbFile(folderPath); //UnixTime var epocDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); //List items foreach (SmbFile item in folder.ListFiles()) { var lastModDate = epocDate.AddMilliseconds(item.LastModified()) .ToLocalTime(); var name = item.GetName(); var type = item.IsDirectory() ? "dir" : "file"; var date = lastModDate.ToString("yyyy-MM-dd HH:mm:ss"); var msg = $"{name} ({type}) - LastMod: {date}"; lstDir.Add(msg); } return(lstDir); } catch (Exception e) { lstDir.Add(e.ToString()); return(lstDir); } }
public static FileCluster Create ( SmbFile path, SmbFile[] paths, IDictionary <string, bool> knownMods, MmasfContext parent) { var infoJSon = GetInfoJSon(path); if (infoJSon == null) { return(null); } var dictionary = path.Directory.Directory; var index = paths .OrderByDescending(item => item.FullName.Split('\\').Length) .ThenBy(item => item.FullName) .IndexWhere(file => file.Contains(dictionary)) .AssertValue(); var modName = infoJSon.Name; var isEnabled = knownMods.GetValueOrNull(modName); var version = new Version(infoJSon.Version); var description = parent.ModDictionary[modName][version]; description.InfoJSon = infoJSon; return(new FileCluster(path, isEnabled, index, description, infoJSon)); }
////private static string srv = "WIN"; ////private static string login = "******"; ////private static string parol = "temp2"; ////private static string fpath = $@"smb://{login}:{parol}@{srv}/temp/"; ////private static string targetf = @"C:\temp\"; static void Main(string[] args) { SharpCifs.Config.SetProperty("jcifs.smb.client.responseTimeout", "3000"); SharpCifs.Config.SetProperty("jcifs.smb.client.connTimeout", "3000"); SharpCifs.Config.SetProperty("jcifs.smb.client.soTimeout", "3000"); //using System; //using SharpCifs.Smb; //Get SmbFile-Object of a folder. //UnixTime var epocDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); while (true) { var folder = new SmbFile(fpath); try { folder.ListFiles(); Thread.Sleep(1000); } catch (Exception e) { try { for (int i = 0; i <= 3; i++) { SmbTransport.ClearCachedConnections(true); break; } } catch (Exception exception) { Thread.Sleep(1000); } Console.WriteLine(e); } continue; //List items foreach (SmbFile item in folder.ListFiles()) { var lastModDate = epocDate.AddMilliseconds(item.LastModified()) .ToLocalTime(); var name = item.GetName(); var type = item.IsDirectory() ? "dir" : "file"; var date = lastModDate.ToString("yyyy-MM-dd HH:mm:ss"); var msg = $"{name} ({type}) - LastMod: {date}"; // GetFile(item); Console.WriteLine(msg); } } Console.ReadLine(); }
private void CaptureTemperatures(SmbFile file) { try { var temperatures = ""; Console.WriteLine($"file?-> {file}"); if (file != null) { //Create reading buffer. using (var memStream = new MemoryStream()) { //Get readable stream. using (var readStream = file.GetInputStream()) { //Get bytes. ((Stream)readStream).CopyTo(memStream); } temperatures = Encoding.UTF8.GetString(memStream.ToArray()); string[] stringSeparators = { "\r\n" }; string[] lines = temperatures.Split(stringSeparators, StringSplitOptions.None); var lastTemperature = lines.First(l => l != ""); lastTemperature = lastTemperature.Split(",").Last(); this.LastTemperature = $"{Convert.ToDecimal(lastTemperature).ToString("0.##")}º C"; RunOnUiThread(() => this.infoText2.Text = $"{this.LastTemperature}"); } } } catch (Exception) { Console.WriteLine($"errot gen data"); } }
public Task <IFolder> CreateAndGetSubFolder(String name) { if (mSmbFile == null) { return(Task.FromResult((IFolder)this)); } return(Task.Factory.StartNew(() => { try { var file = new SmbFile(mSmbFile, name); file.Mkdir(); } catch (SmbException ex) { LogException(ex); throw new System.IO.IOException(ex.Message, ex); } catch (Java.IO.IOException ex) { throw new System.IO.IOException(ex.Message, ex); } return (IFolder)(new SmbFolder(mSmbFile, name)); })); }
private FileSystemMetadata ToMetadata(SmbFile info, bool?isDirectory = null) { var result = new FileSystemMetadata(); result.Exists = info.Exists(); result.FullName = GetReturnPath(info); result.Extension = Path.GetExtension(result.FullName); result.Name = info.GetName(); if (result.Exists) { result.IsDirectory = info.IsDirectory(); result.IsHidden = info.IsHidden(); result.IsReadOnly = !info.CanWrite(); if (info.IsFile()) { result.Length = info.Length(); result.DirectoryName = info.GetParent(); } result.CreationTimeUtc = baseDate.AddMilliseconds(info.CreateTime()); result.LastWriteTimeUtc = baseDate.AddMilliseconds(info.GetLastModified()); } else { if (isDirectory.HasValue) { result.IsDirectory = isDirectory.Value; } } return(result); }
public DirectorySmb(SmbFile contentSmb) : base(contentSmb ?? throw new ArgumentNullException(nameof(contentSmb))) { if (!contentSmb.IsDirectory()) { throw new ArgumentException("Argument is not Directory."); } }
private void tsbRead_Click(object sender, EventArgs e) { try { //Get target's SmbFile. var file = new SmbFile("smb://jing.luo:[email protected]/程序文件及体系证书/体系证书/新版体系证书/IATF16949:2016 证书 中英文版.pdf"); //Get readable stream. var readStream = file.GetInputStream(); //Create reading buffer. var memStream = new MemoryStream(); FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + file.GetName(), FileMode.Create); //Get bytes. ((Stream)readStream).CopyTo(fs); //Dispose readable stream. readStream.Dispose(); MessageBox.Show("文件下载成功"); } catch (Exception ex) { MessageBox.Show(ex.Message + ex.InnerException); } //Console.WriteLine(Encoding.UTF8.GetString(memStream.ToArray())); }
public void NbtAddressTest() { //NG: ローカルポートと共に、宛先ポートを変更してしまう。 //SharpCifs.Config.SetProperty("jcifs.netbios.lport", "2137"); //ローカルポートのみを変更する。ウェルノウンポートは管理者権限が必要なので。 SharpCifs.Config.SetProperty("jcifs.smb.client.lport", "8137"); try { var lan = new SmbFile("smb://", ""); var workgroups = lan.ListFiles(); } catch (Exception ex) { throw; } //var nbtAddrs = NbtAddress.GetAllByAddress("COCO4"); //var nbtAddrs = NbtAddress.GetAllByAddress("127.0.0.1"); var nbtAddrs = NbtAddress.GetAllByAddress("192.168.254.11"); foreach (var nbtAddr in nbtAddrs) { this.Out($"{nbtAddr.GetHostName()} - {nbtAddr.GetInetAddress()}"); } }
public void ConfigTest1() { var props = new SharpCifs.Util.Sharpen.Properties(); props.SetProperty("jcifs.smb.client.username", this.UserName); props.SetProperty("jcifs.smb.client.password", this.Password); SharpCifs.Config.SetProperties(props); var uriString = $"smb://{this.ServerName}/FreeArea/SharpCifsTest/"; var dir = new SmbFile(uriString); Assert.IsTrue(dir.Exists()); var list = dir.ListFiles(); foreach (var file in list) { var name = file.GetName(); //Assert.IsTrue(name.IndexOf("filename") >= 0); var time = file.LastModified(); var dateteime = EpocDate.AddMilliseconds(time).ToLocalTime(); this.Out( $"Name: {file.GetName()}, isDir?: {file.IsDirectory()}, Date: {dateteime.ToString("yyyy-MM-dd HH:mm:ss")}"); } }
/// <exception cref="WinrtCifs.Smb.SmbException"></exception> /// <exception cref="System.UriFormatException"></exception> /// <exception cref="UnknownHostException"></exception> public SmbRandomAccessFile(SmbFile file, string mode) { this._file = file; if (mode.Equals("r")) { _openFlags = SmbFile.OCreat | SmbFile.ORdonly; } else { if (mode.Equals("rw")) { _openFlags = SmbFile.OCreat | SmbFile.ORdwr | SmbFile.OAppend; _writeAndxResp = new SmbComWriteAndXResponse(); _options = WriteOptions; _access = SmbConstants.FileReadData | SmbConstants.FileWriteData; } else { throw new ArgumentException("Invalid mode"); } } file.Open(_openFlags, _access, SmbFile.AttrNormal, _options); _readSize = file.Tree.Session.transport.RcvBufSize - 70; _writeSize = file.Tree.Session.transport.SndBufSize - 70; _fp = 0L; }
private void AssertDirectoryExists(SmbFile file, string path) { if (!file.Exists()) { throw new FileNotFoundException("File not found.", path); } }
public void LocalScanTest() { //ローカルポートと共に、宛先ポートを変更してしまう。 //SharpCifs.Config.SetProperty("jcifs.netbios.lport", "2137"); //ローカルポートのみを変更する。ウェルノウンポートは管理者権限が必要なので。 SharpCifs.Config.SetProperty("jcifs.smb.client.lport", "8137"); SmbFile[] workgroups; try { var lan = new SmbFile("smb://", ""); workgroups = lan.ListFiles(); } catch (Exception ex) { throw; } foreach (var workgroup in workgroups) { Console.WriteLine($"Workgroup Name = {workgroup.GetName()}"); this.Out($"Workgroup Name = {workgroup.GetName()}"); try { var servers = workgroup.ListFiles(); foreach (var server in servers) { Console.WriteLine($"{workgroup.GetName()} - Server Name = {server.GetName()}"); this.Out($"{workgroup.GetName()} - Server Name = {server.GetName()}"); try { var shares = server.ListFiles(); foreach (var share in shares) { Console.WriteLine($"{workgroup.GetName()}/{server.GetName()} - Share Name = {share.GetName()}"); this.Out($"{workgroup.GetName()}/{server.GetName()} - Share Name = {share.GetName()}"); } } catch (Exception) { Console.WriteLine($"{workgroup.GetName()}/{server.GetName()} - Access Denied"); this.Out($"{workgroup.GetName()}/{server.GetName()} - Access Denied"); } } } catch (Exception ex) { Console.WriteLine($"{workgroup.GetName()} - Access Denied"); this.Out($"{workgroup.GetName()} - Access Denied"); } } Console.WriteLine("Fin"); }
internal IniFile(SmbFile path, string commentString, Action onExternalModification) { Path = path; CommentString = commentString; OnExternalModification = onExternalModification; Data = new ValueCache <IniData>(() => Path.FromIni(CommentString)); Watcher = CreateWatcher(path); }
FileCluster(SmbFile fileHandle, bool?isEnabled, int configIndex, ModDescription description, InfoJSon infoJSon) { File = fileHandle; ConfigIndex = configIndex; Description = description; InfoJSon = infoJSon; IsEnabled = isEnabled; }
/// <summary> /// Creates an /// <see cref="System.IO.OutputStream">System.IO.OutputStream</see> /// for writing bytes to a file /// on an SMB server addressed by the <code>SmbFile</code> parameter. See /// <see cref="SmbFile">SmbFile</see> /// for a detailed description and examples of /// the smb URL syntax. If the second argument is <code>true</code>, then /// bytes will be written to the end of the file rather than the beginning. /// </summary> /// <param name="file">An <code>SmbFile</code> representing the file to write to</param> /// <param name="append">Append to the end of file</param> /// <exception cref="SharpCifs.Smb.SmbException"></exception> /// <exception cref="System.UriFormatException"></exception> /// <exception cref="UnknownHostException"></exception> public SmbFileOutputStream(SmbFile file, bool append) : this(file, append, append ? SmbFile.OCreat | SmbFile.OWronly | SmbFile.OAppend : SmbFile.OCreat | SmbFile.OWronly | SmbFile.OTrunc) { }
//using System; //using SharpCifs.Smb; //Set Local UDP-Broadcast Port. //When using the host name when connecting, //Change default local port(137) to a value larger than 1024. //In many cases, use of the well-known port is restricted. // // ** If possible, using IP addresses instead of host names // ** to get better performance. // async void fLISTSERVER(object sender, EventArgs e) { SharpCifs.Config.SetProperty("jcifs.smb.client.lport", "8137"); //Get local workgroups. var lan = new SmbFile("smb://" + Globals.cIP + "/", ""); // User:[email protected]/", ""); var workgroups = lan.ListFiles(); foreach (var workgroup in workgroups) { Console.WriteLine($"Workgroup Name = {workgroup.GetName()}"); // await DisplayAlert($"Workgroup Name = {workgroup.GetName()}","",""); try { //Get servers in workgroup. var servers = workgroup.ListFiles(); int nn = 0; foreach (var server in servers) { nn++; if (nn > 2) { break; } Console.WriteLine($"{workgroup.GetName()} - Server Name = {server.GetName()}"); await DisplayAlert($"{workgroup.GetName()} - Server Name = {server.GetName()}", "....", "OK"); try { //Get shared folders in server. var shares = server.ListFiles(); int n = 0; foreach (var share in shares) { Console.WriteLine($"{workgroup.GetName()}{server.GetName()} - Share Name = {share.GetName()}"); await DisplayAlert($"{workgroup.GetName()}{server.GetName()} - Share Name = {share.GetName()}", "", "OK"); n++; if (n > 2) { break; } } } catch (Exception) { Console.WriteLine($"{workgroup.GetName()}{server.GetName()} - Access Denied"); await DisplayAlert($"{workgroup.GetName()}{server.GetName()} - Access Denied", "", "OK."); } } } catch (Exception) { Console.WriteLine($"{workgroup.GetName()} - Access Denied"); await DisplayAlert($"{workgroup.GetName()} - Access Denied", "", "OK-"); } } }
private static void ClearSmbState() { try { SmbTransport.ClearCachedConnections(true); SmbFile.Initialize(); } catch { } }
private void Button1_Clicked(object sender, EventArgs e) { var folder = new SmbFile($"smb://{_username}:{_password}@{_server}/{_sharedfoldername}/"); //<-need last'/' in directory foreach (var item in folder.ListFiles()) { Console.WriteLine($"Name: {item.GetName()}, isDir?: {item.IsDirectory()}"); } }
public static void CreateZipFile(string destinationPath, SmbFile source, string targetPath) { var zipStream = new ZipOutputStream(File.Create(destinationPath)); zipStream.SetLevel(3); CompressFolder(zipStream, source, targetPath); zipStream.IsStreamOwner = true; zipStream.Close(); }
static InfoJSon GetInfoJSon(SmbFile file) { var text = file.IsDirectory ? GetInfoJSonFromDirectory(file) : GetInfoJSonFromZipFile(file); return(text?.FromJson <InfoJSon>()); }
private SmbFolder(SmbFile smbFile) { #if DEBUG_SAMBA if (smbFile != null) { Android.Util.Log.Debug("SmbClient", "Create file with smb path: " + smbFile.Path); } #endif mSmbFile = smbFile; }
private void InserirImagensServidor(RegistroDeReforma registroDeReforma) { foreach (var item in registroDeReforma.ListaDeImagens) { try { //Remover Caracteres Especiais, Nome, NomeFantasia, Descricao do Equipamento e Cidade // //Primeira Letra nome Cliente/Nome -- //NomeFantasia /Unidade {Cidade}/Ano/NF NroNota R.R. NroRRConsulta DescricaoEquipamento/ //NomeImagem DataComUnderline //Get the SmbFile specifying the file name to be created. var firstLetterClient = registroDeReforma.NomeCliente.Substring(0, 1); var fullClientName = registroDeReforma.NomeCliente.RemoveSpecialCaracters(); var apelido = registroDeReforma.NomeFantasia.RemoveSpecialCaracters(); var cityName = registroDeReforma.Cidade.RemoveSpecialCaracters(); var dateRR = DateTime.Parse(registroDeReforma.DataCadastro); var nf = registroDeReforma.NotaFiscal; var rr = registroDeReforma.DescricaoRR; var eqDesc = registroDeReforma.Equipamento.RemoveSpecialCaracters(); var smbPath = ConfigurationBase.Instance.SmbPath; var filePath = string.Format(ConfigurationBase.Instance.FilePath, firstLetterClient, fullClientName, apelido, cityName, dateRR.Year, nf, rr, eqDesc.TrimEnd()); var fileName = string.Format("{0}.{1}", DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss.fff").Replace('/', '_').Replace(':', '_').Replace(' ', '_'), "jpg"); var auth2 = new NtlmPasswordAuthentication(ConfigurationBase.Instance.NetworkDomain, ConfigurationBase.Instance.NetworkUser, ConfigurationBase.Instance.NetworkPassword); var pathConfirm = new SmbFile(string.Format("{0}/{1}", smbPath, filePath), auth2); //Create file. if (!pathConfirm.Exists()) { pathConfirm.Mkdirs(); } var file = new SmbFile(string.Format("{0}/{1}/{2}", smbPath, filePath, fileName), auth2); file.CreateNewFile(); //Get writable stream. var writeStream = file.GetOutputStream(); //Write bytes. writeStream.Write(Helpers.Helpers.GetImageArray(item)); //Dispose writable stream. writeStream.Dispose(); } catch (Exception ex) { throw new Exception(ex.Message); } } }
/// <exception cref="SharpCifs.Smb.SmbException"></exception> public virtual bool Accept(SmbFile file) { return (file.GetAttributes() & Attributes) != 0; }