שמירת מסמך בכונן רשת בC#

יעלי מיכאלי

משתמש מקצוען
הנדסת תוכנה
אשמח לעזרה אם מישהו נתקל בשמירת קובץ בכונן רשת
תודה!!
 
נערך לאחרונה ב:

shiye

משתמש פעיל
D I G I T A L
אתה מתכוון לשמור את הפרויקט שבנית?
 

shiye

משתמש פעיל
D I G I T A L
אז מה הכוונה קובץה אטינטרנטי?HTML?
 

יעלי מיכאלי

משתמש מקצוען
הנדסת תוכנה
C#:
private string UploadFile(ArchiveDTO archive)
        {
            Guid documentId = Guid.NewGuid();
            bool fileNameIsValid = !string.IsNullOrWhiteSpace(archive.FileName);
            var module_path = db.Main.tm_pathes.Where(x => x.path_code == archive.PathId).Select(x => x.path_description).FirstOrDefault();
            if (fileNameIsValid)
            {
                string newFileName = archive.FileName.ToString();
                string bakDirectory = @module_path;
                string path = Path.Combine(bakDirectory, newFileName);
                string networkPath = "\\\\10.0.0.1\\R";
                NetworkCredential credentials = new NetworkCredential("aa", "bb", "cc");
                string myNetworkPath = string.Empty;
                using (new ConnectToSharedFolder(networkPath, credentials))
                {
                    var fileList = Directory.GetDirectories(networkPath);
                    foreach (var item in fileList) { if (item.Contains("{fileNameIsValid}")) { myNetworkPath = item; } }
                    myNetworkPath = myNetworkPath + path;
                    var fs = new FileStream(path, FileMode.Create);
                    archive.DocFile.CopyTo(fs);
                    fs.Close();
                }
                return newFileName;
            }
            return string.Empty;
        }
    }
C#:
 public class ConnectToSharedFolder : IDisposable
    {
        readonly string _networkName;
        public ConnectToSharedFolder(string networkName, NetworkCredential credentials)
        {
            _networkName = networkName;
            var netResource = new NetResource
            {
                Scope = ResourceScope.GlobalNetwork,
                ResourceType = ResourceType.Disk,
                DisplayType = ResourceDisplaytype.Share,
                RemoteName = networkName
            };

            var userName = string.IsNullOrEmpty(credentials.Domain)
                ? credentials.UserName
                : string.Format(@"{0}\{1}", credentials.Domain, credentials.UserName);



            var result = WNetAddConnection2(
                netResource,
                credentials.Password,
                userName,
                0);

            if (result != 0)
            {
                throw new Win32Exception(result, "Error connecting to remote share");
            }
        }

        ~ConnectToSharedFolder()
        {
            Dispose(false);
        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
        protected virtual void Dispose(bool disposing)
        {
            WNetCancelConnection2(_networkName, 0, true);
        }

        [DllImport("mpr.dll")]
        private static extern int WNetAddConnection2(NetResource netResource,string password, string username, int flags);

        [DllImport("mpr.dll")]
        private static extern int WNetCancelConnection2(string name, int flags,bool force);

        [StructLayout(LayoutKind.Sequential)]
        public class NetResource
        {
            public ResourceScope Scope;
            public ResourceType ResourceType;
            public ResourceDisplaytype DisplayType;
            public int Usage;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string LocalName;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string RemoteName;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string Comment;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string Provider;
        }

        public enum ResourceScope : int
        {
            Connected = 1,
            GlobalNetwork,
            Remembered,
            Recent,
            Context
        };

        public enum ResourceType : int
        {
            Any = 0,
            Disk = 1,
            Print = 2,
            Reserved = 8,
        }

        public enum ResourceDisplaytype : int
        {
            Generic = 0x0,
            Domain = 0x01,
            Server = 0x02,
            Share = 0x03,
            File = 0x04,
            Group = 0x05,
            Network = 0x06,
            Root = 0x07,
            Shareadmin = 0x08,
            Directory = 0x09,
            Tree = 0x0a,
            Ndscontainer = 0x0b
        }

    }
}
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קיט ב'

ט בַּמֶּה יְזַכֶּה נַּעַר אֶת אָרְחוֹ לִשְׁמֹר כִּדְבָרֶךָ:י בְּכָל לִבִּי דְרַשְׁתִּיךָ אַל תַּשְׁגֵּנִי מִמִּצְוֹתֶיךָ:יא בְּלִבִּי צָפַנְתִּי אִמְרָתֶךָ לְמַעַן לֹא אֶחֱטָא לָךְ:יב בָּרוּךְ אַתָּה יְהוָה לַמְּדֵנִי חֻקֶּיךָ:יג בִּשְׂפָתַי סִפַּרְתִּי כֹּל מִשְׁפְּטֵי פִיךָ:יד בְּדֶרֶךְ עֵדְוֹתֶיךָ שַׂשְׂתִּי כְּעַל כָּל הוֹן:טו בְּפִקֻּדֶיךָ אָשִׂיחָה וְאַבִּיטָה אֹרְחֹתֶיךָ:טז בְּחֻקֹּתֶיךָ אֶשְׁתַּעֲשָׁע לֹא אֶשְׁכַּח דְּבָרֶךָ:
נקרא  9  פעמים

לוח מודעות

למעלה