Я пытаюсь написать программу, которая передает строку с именем файла.Затем я хочу, чтобы программа запустила / открыла файл, который я передал в качестве параметра.
Я провел некоторое исследование и уверен, что должен использовать что-то вроде этого: Ссылка
Но я нашел только примеры для открытия (для записи) файлов, удаления и поиска файлов. MS Library
У меня проблемы с адаптациейкод.
Кто-нибудь может мне помочь?Вот что я придумала:
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.ComponentModel;
using System.Runtime.InteropServices;
using Microsoft.Win32.SafeHandles;
namespace ConsoleApplication1
{
class Program
{
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
static extern bool abreFicheiro(string lpFileName, bool bFailIfExists);
static void Main(string[] args) {
string caminho = fixPathForLong(@args[0]);
abreFicheiro(caminho);
}
public static bool abreFicheiro(string caminho) {
Process.Start(caminho);
if (!abreFicheiro(caminho, false))
{
throw new Win32Exception();
}
return true;
}
private static string fixPathForLong(String path)
{
if (!path.StartsWith(@"\\?\"))
path = @"\\?\" + path;
return path;
}
}
}
РЕДАКТИРОВАТЬ: Кажется, есть некоторая путаница относительно того, что я не хочу, поэтому я попытаюсь уточнить.1019 * У меня есть приложение FoxPro, в котором хранятся записи.Для некоторых из этих записей я хочу связать изображение или документ, поэтому я сохраняю его путь в поле в базе данных.Все идет нормально.Проблема в том, что файлы увеличиваются до нескольких ТБ (это верно Tera Bytes), а пути намного длиннее, чем максимально допустимый интерфейсами Windows API.
Я хочу открыть эти файлы напрямую из Fox, но Fox этого не делает.поддерживать длинные пути.Поэтому я хочу написать приложение на C #, в котором я передаю длинное имя файла в качестве параметра и открываю его этим приложением ...
Проблема в том, что C # также "наследует" ограничение Windows API.Я нашел обходной путь для удаления, перемещения и открытия (в режиме редактирования) файлов с такими длинными путями.Но я хочу, чтобы окна открывали файл и показывали его пользователю.
Надеюсь, я все прояснил.Извините за плохой английский.