Winform中获取相对路径的方法,除了放在Debug下还有别的吗

Winform中获取相对路径的方法,除了放在Debug下还有别的吗,第1张

应用程序中,取出的路径都是物理路径,一般况下,应用程序对自己启动路径下有读写的功能。所以取出的路径也都是物理路径的,所以应用程序不可能象网站应用程序一样取出的是虚拟路径。其不管是物理路径还是虚拟路径都是使用的绝对路径。只不过这里你理解成了相对于应用程序的路径而已。

在windows系统中并非所有路径是可读写的。有时软件并没有权限对其他目录进行读写。但事实上他也并非是指向了debug。而是启动路径。如果你做成安装程序,那么应用软件显然指向的是安装环境下的路径,而在调试时,因为启动程序在debug/release(bin下两个文件夹,主要看你是debug还是release)下,所以自然指向的是该路径。如果需要不同的路径,可以使用IO空间中的FilePath或直接使用File来定义指定的可读写路径即可。

因为,application是一个公共的,指明运行程序的环境,他只能指向自己启动路径,公共用户路径,用户数据路径。其实在网站用程序中的拼接方式同时是可以适用的。这就好比在servermappath虽说是一个转换,其实也是自行拼接的结果。引用servermappath时,能获得到相地的appdomain。说明白了,就是server可以得到你的应用程序的根路径,然后利用servermappath其就是一个拼接的过程。

知道这个就好办了,要么你引用server,要么你自己直接写一个拼接的过程或写一个对象。

那么你利用自己函数进行拼接与直接拼接,还是写一个对象专门去拼接,有什么不一样的地方么?

你没有理解项目和程序的区别。

实际运行的程序是没有所谓项目的概念的(不可能把源代码也复制过去吧?!),也就是说,你的应用程序运行时的目录下一开始是不会自动地产生ClientPhoto这个文件夹的(除非你在项目里将这个文件夹中的文件设置为“复制到输出目录”。)

所以你要做的,第一件事就是先获取应用程序的路径,然后判断这个路径下的目录存在不存在,如果不存在,要首先创建一个。

我们知道“ClientPhoto”其实只是一个相对路径而已,要获得绝对路径,首先要知道应用程序当前的绝对路径:只需要检索SystemWindowsFormsApplicationStartupPath这个属性即可。

string path = SystemWindowsFormsApplicationStartupPath;

然后将应用程序当前路径path和字符串“ClientPhoto”组合成为一个完整的文件夹绝对路径folder(这时候就是绝对路径了,但是,还没完!)。

string folder = SystemIOPathCombine(path, "ClientPhoto");

接着判断 folder 指定的文件夹是否存在。

bool folderExists = SystemIODirectoryExists(folder);

如果文件夹不存在,则创建它。如果创建不了,会引发异常,请自行捕捉这个异常。

if(!folderExists)

{

    SystemIODirectoryCreateDirectory(folder);

}

最后才返回路径 folder。

完整代码:

private string GetFolderPath()

{

    string folder = PathCombine(ApplicationStartupPath, "ClientPhoto");

    if(!DirectoryExists(folder))

    {

        DirectoryCreateDirectory(folder);

    }

    return folder;

}

既然知道带路径的

那么

使用PathGetFileName(带路径的文件名)

别忘了

using SystemIO;

对于这个问题,你可以写个循环啊

string[] s = DirectoryGetFiles(DirFullPath, SearchPattern);

string[] filename = new string[sLength];

for (int i = 0; i < sLength; i++)

{

filename[i] = PathGetFileName(s[i]);

}

return filename;

大概就是这个意思吧

1这个问题我认为是一个伪命题;

2winform程序应该是指windows平台下的客户端程序,相对的,web程序中有webForm技术的概念;

3winform程序通过>

string path = "";

//存

ApplicationUserAppDataRegistrySetValue("path", path);

 

 

 

//读

string s = ApplicationUserAppDataRegistryGetValue("path") as string;

以上就是关于Winform中获取相对路径的方法,除了放在Debug下还有别的吗全部的内容,包括:Winform中获取相对路径的方法,除了放在Debug下还有别的吗、C# 获取项目下文件夹路径、在winform中怎么获取文件夹中所有的文件directory等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9279536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存